【发布时间】:2015-01-18 12:57:15
【问题描述】:
我目前使用 Redis 作为 Sidekiq 的工作队列。我也有兴趣将它用作 Rails.cache 的缓存机制。
推荐的 Rails 缓存机制永远不会使项目过期,并依赖于逐出最近最少使用 (LRU) 的项目。不幸的是,默认情况下,Redis 没有配置为驱逐最近最少使用的项目,而推荐的缓存存储 memcached 是。
此外,驱逐项目不是我希望我的工作队列的行为,并且配置相同的 Redis 实例来执行此操作可能会导致不良结果。我也不希望我的队列与我的缓存共享周期。
在这种情况下,你们会推荐什么?第二个 redis 存储充当缓存并配置了 LRU?还是只用rails推荐的memcached缓存存储,只用redis单独做队列?
我倾向于同时使用 Redis 和 Memcached,尽管有大量堆栈溢出文章建议不这样做。默认情况下支持 LRU eviction 的 memcached 赢得了我的青睐。
一些文章:
在 cmets 中隐藏得更深,海报提到 memcached 的 LRU 驱逐是使用它作为缓存的一个重要原因。
【问题讨论】:
标签: ruby-on-rails ruby caching redis memcached