Closed5

Cache on Rails

ピン留めされたアイテム
pockepocke

Proposal本文

Abstract

We can use many cache mechanisms on Rails. You will know the cache mechanisms and be able to apply them to your application by this talk.
私達は様々なキャッシュをRailsで使っています。このトークを聞くと、そのようなキャッシュをあなたのRailsアプリケーションで使えるようになるでしょう。

I'll talk in Japanese, but the slides are written in English.

Details

このトークではRailsアプリケーションで使える様々なキャッシュについて話します。

ゴール

このトークのゴールは次のとおりです。すなわち、Railsアプリケーションの開発時に適切なキャッシュを選択し、アプリケーションを高速化できるようになることを目指します。

話すこと

このトークでは、以下のキャッシュについて話す予定です。主にアプリケーション開発者が直接意識して操作するような、アプリケーション寄りのキャッシュの話をしたいと考えています。

  • Rails.cache
    • memcached, file, redis, memory, etc...
    • localcache
  • HTTP Cache-Control header
  • etag
    • Rack::ETag
  • Active Record Query Cache
  • BrowserのCacheStorage API

またキャッシュの関連技術として、次のことも話します。

  • cache_keyの計算方法
  • そもそもキャッシュを使う必要があるのか?
    • キャッシュの使いどころ、使うべきではないケースなど
    • キャッシュを使うことの難しさについて

話さないこと

一方、以下のキャッシュについては話さない予定です。なぜならば、これらのキャッシュはアプリケーション開発者が意識することは少なく、また私自身の知見もあまり多くないためです。

  • CPU cache
  • Ruby interpreterのキャッシュ
  • OSのdisk cache

以下のキャッシュについても同様に話さない予定です。これらはアプリケーション開発者が意識することはあると思いますが、私自身の知見が多くないためです。

  • CDN
  • Varnishなどのミドルウェア

Pitch

2021年前半、私はRailsアプリケーションの高速化を主なタスクとして仕事をしていました。その中でキャッシュを使った(あるいはキャッシュを使わない)多くの改善を実装しました。
この改善は簡単ではなく、様々な方法を調査して実装する必要がありました。そのためこの改善で得た知見は多く、社内だけでなく社外にも広く共有したいと考えています。

pockepocke

cache_keyがどう計算されるかについても話す。

このスクラップは2021/10/26にクローズされました