
もくじ
イントロダクション
当記事は、Rails のキャッシュ機構を参考にして記述している。
また、文言が分かりづらいところは解説も含めて記述しているので、内容は希薄だが、読みやすくなっているはずだ。
Railsの主なキャッシュ機構3種類
ページキャッシュ
apacheやnginxなどのwebサーバーによって生成されるページへのリクエストを(Railsスタック全体を経由せずに)キャッシュするメカニズム。
特徴
高速だが、認証の際には適用されていない。
また、webサーバーはファイルシステムから直接ファイルを読み出して利用するので、キャッシュの有効期限の実装も必要。
ページキャッシュのまとめ
Webサーバーによって生成されるからページキャッシュは高速
アクションキャッシュ
アクションキャッシュは認証に使う。
特徴
webサーバーへのリクエストがRailsスタックにヒットしたときにbefore_filterを実行してからキャッシュを返す点が異なる。
アクションキャッシュまとめ
アクションキャッシュは認証に使われている
フラグメントキャッシュ
その名の通り、フラグメントキャッシュはユーザーによって異なるページ内の動的な部分のキャッシュを設定したい時に使う。
例えば、ページ内で表示する製品(product)を個別にキャッシュしたい場合、次のように書くことができる。
<% @products.each do |product| %>
<% cache product do %>
<%= render product %>
<% end %>
<% end %>
その際に保存されるキーは以下のようなもの。
「bea67108094918eeba42cd4a6e786901」の部分が一意の「product_id」となり、
「1-201505056193031061005000」の部分がレコードのupdated_at属性となる。これは古いデータを渡さないようにするために使われている。
特徴
このようにキャッシュされたフラグメントは、ビューのフラグメントが変更された時(リロードをかけられた時など)に期限が切れる。
フラグメントキャッシュまとめ
フラグメントキャッシュは動的な部分に使われている
まとめ
以上が3つのキャッシュの概要とその用途だ。
実際のRailsガイドには、この他にも
ロシアンドールキャッシュ
パーシャルキャッシュ
低レベルキャッシュ
SQLキャッシュ
キャッシュストア
これらについて詳しく書かれている。
気になる方は是非目を通して見て欲しい。
ここまで読んでくれてありがとう!
おすすめ記事


