0
我在我的Rails應用程序了查詢並不需要很長時間來運行(〜180ms的),但不會返回了不少成果。結果在API中使用,結果轉換爲JSON的代價很高(大約3秒)。爲了加快速度,我這樣緩存:Rails的:無效基於查詢的緩存結果
key = 'new_prices'
query = Prices.new_this_month.where('...')
json = cache(key, expires_in: 60.minutes) do
render_to_string json: query, each_serializer: PriceSerializer
end
render json: json
在後臺可以將新價格添加到數據庫中。我怎樣才能生成如果query
變化的結果,緩存失效這樣的緩存鍵?
我通過dalli
寶石使用Rails 3.2,與memcached的。
它實際上並沒有一個'created_at'日期,但可以推斷出來。我也認爲我說得對,如果價格變化,緩存不會失效? (我沒有'modified_at') –
是的假設是正確的。雖然你沒有在你的問題中提到這個。確實需要一種方法來確定自上次碎片緩存後價格是否已更新。否則,你唯一的選擇是手動使緩存失效。 – fivedigit