在我的rails应用程序中,我有一个产品型号,我有以下方法:
def average_rating
comments.average(:rating).to_f
end
计算用户对产品的平均评分。
如何让Redis缓存平均评分?
非常感谢提前
答案 0 :(得分: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 - 这是为了在redis down时不崩溃。
hiredis - 加快速度
redis-browser - 查看真正缓存的内容。
希望这有帮助!