railsキャッシュテクノロジー

1510 ワード

3つのキャッシュテクノロジー:ページ、アクション、クリップ.
Railsのデフォルトでは、クリップキャッシュがサポートされています.ページキャッシュとアクションキャッシュを使用する場合は、Gemfileにactionpack-page_を追加します.cachingとactionpack-action_caching. 開発環境でキャッシュを使用するには
config.action_controller.perform_caching

オプションをtrueに設定します.このオプションは、一般的に各環境の設定ファイル(config/environments/*.rb)で設定され、開発環境とテスト環境ではデフォルトで無効になり、本番環境ではデフォルトでオンになります.
config.action_controller.perform_caching = true

この3つのキャッシュ・テクノロジーは、数値とオブジェクトのキャッシュにはあまり実用的ではありません.このシーンでは、最下位のキャッシュを使用する必要があります.
最下位キャッシュ
最下位キャッシュを実現する最も効果的な方法はRails.cache.fetchメソッドを使用することです.この方法では,キャッシュからデータを読み出すこともできるし,キャッシュにデータを書き込むこともできる.個々のパラメータが入力されると、指定したキーに対応する値が読み出されます.コードブロックを入力すると、コードブロックの計算結果がキャッシュされた指定キーに格納され、計算結果が返されます.次のコードを例に挙げます.プログラムにはProductモデルがあり、競合他社のWebサイトの商品価格を照会するためのインスタンスメソッドが定義されています.このメソッドの戻り結果は、最下位キャッシュを使用することが望ましい.
class Product < ActiveRecord::Base
    def competing_price
        Rails.cache.fetch("#{cache_key}/competing_price", expires_in: 12.hours) do
            Competitor::API.find_price(id)
        end
    end
end 

この例ではcache_が使用されていることに注意してください.keyメソッドなので、得られたキャッシュキー名は、products/233-201402508222765838000/competing_price.cache_keyメソッドはモデルのidとupdated_に基づいてat属性はキー名を生成する.これは、商品が更新されるとキャッシュが無効になるため、最も一般的な方法です.一般的に、最下位キャッシュを使用してインスタンスに関する情報を保存する場合は、キャッシュキーを生成します.キャッシュを手動でクリアする場合はRails.cache.delete(#{cache_key})を使用します.
リファレンスhttp://guides.ruby-china.org/caching_with_rails.html http://www.jianshu.com/p/b3dfe567a539