我目前使用 Redis 作为 Sidekiq 的工作队列。我也有兴趣将它用作 Rails.cache 的缓存机制。
推荐的 Rails 缓存机制永远不会使项目过期,并且依赖于逐出最近最少使用 (LRU) 的项目。不幸的是,默认情况下,Redis 未配置为逐出最近最少使用的项目,而推荐的缓存存储 memcached 是。
此外,驱逐项目不是我希望我的工作队列的行为,并且配置相同的 Redis 实例来执行此操作可能会导致不良结果。无论如何,我也不希望我的队列与我的缓存共享周期。
在这种情况下你们会推荐什么?第二个 redis 存储充当缓存并配置了 LRU?还是直接用rails推荐的memcached cache store,只用redis单独做队列?
我倾向于同时使用 Redis 和 Memcached,尽管有很多堆栈溢出文章建议不这样做。默认情况下支持 LRU 驱逐的 memcached 赢得了我的青睐。
一些文章:
隐藏在评论的更深处,发帖人提到 memcached 的 LRU 逐出是将其用作缓存的重要理由。
最佳答案
最终同时使用了 redis 和 memcached。对结果非常满意。
关于ruby-on-rails - 需要 LRU 缓存时,Memcached 与 Redis 作为 Rails.cache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27043417/