【发布时间】:2013-01-11 14:58:35
【问题描述】:
我想在我的 Rails 应用程序中使用 gem "redis-store" 作为缓存存储。与 memcached 不同,redis 不会清理未使用的键,但我可以在每个键上使用 EXPIRE 命令(通过 :expire_in 选项)来限制每个键的生命周期。
然后我想使用我的模型的cache_key(包括id和updated_at)作为redis键的一部分,用于缓存。所以当模型更新时,新的缓存键会被创建,而旧的将永远不会被使用。
那么问题来了,选择哪个过期时间?如果设置得太小,它会消除缓存的好处,如果太长 - 它会用未使用的数据填充 redis,这会(可能)降低性能。中庸之道在哪里?
【问题讨论】:
-
缓存过期是编程中仅有的两件难事之一 :)
标签: ruby-on-rails caching redis