2016-12-16 51 views
0

在我的Rails應用我有一個產品模型,其中我有以下方法:更改模型緩存平均評級Redis的

def average_rating 
     comments.average(:rating).to_f 
end 

這個計算平均得分用戶給產品。

如何讓Redis緩存平均評分?

許多在此先感謝

回答

0

在模型

def average_rating 
    Rails.cache.fetch("#{cache_key}/#{__method__}", expires_in: 1.hour) do 
     comments.average(:rating).to_f 
    end 
end 

在application.rb中

config.cache_store = :readthis_store, { expires_in: 1.hour.to_i, namespace: 'foobar', redis: { host: config.redis_host, port: 6379, db: 0 }, driver: :hiredis } 

在Gemfile中

gem 'redis' 
gem 'readthis' 
gem 'hiredis' 
gem 'redis-browser' 

readthis - 這是不是崩潰時紅正在下降。

hiredis - 使快一點

Redis的瀏覽器 - 要看到什麼是真正的緩存。

希望這會有所幫助!

+0

所以在#{cache_key} /#{__ method__}我應該把我自己的緩存鍵和方法? –

+0

關鍵只有罰款我想。 __method__會自動獲取當前的方法名稱。請打印該複印件。 – Jayaprakash