需要LRU缓存时,Memcached vs Redis为Rails.cache

dim*_*roc 9 ruby memcached caching ruby-on-rails redis

我目前使用Redis作为Sidekiq的工作队列.我也有兴趣将它用作Rails.cache的缓存机制.

推荐的Rails缓存机制永远不会使项目过期,并依赖于驱逐最近最少使用(LRU)的项目.不幸的是,默认情况下,Redis不配置为驱逐最近最少使用的项目,而推荐的缓存存储是memcached.

此外,驱逐项目不是我想要的工作队列行为,并且配置相同的Redis实例来执行此操作可能会导致不良结果.我也不希望我的队列与我的缓存共享周期.

在这种情况下你会推荐什么?第二个redis存储充当缓存并配置了LRU?或者只使用rails推荐的memcached缓存存储并且仅使用redis作为队列?

我倾向于使用Redis和Memcached,尽管有大量的堆栈溢出文章推荐否则.memcached默认支持LRU驱逐是赢得我的.

一些文章:

在评论中隐藏得更深,海报提到memcached的LRU驱逐是将其用作缓存的一个很好的理由.

dim*_*roc 2

最终使用了redis和memcached。对结果非常满意。