RT
该 Gem 使用起来如何?如果 ok 的话,我觉得 Ruby China 也许可以放弃 memcached,毕竟 redis 的性能比之要好,且这样可以降低架构的复杂度。
@nowazhu Redis 是长久存放的,很多数据不便于放里面,尤其是用了 redis-objects 将一些重要的数据也放 Redis 里面的时候,放到 Memcached 里面会变得放心些。 把握点就是不重要的 Cache 或 数据就扔 Memcached,重要的放 Redis 现在 Ruby China 也已经从之前的 redis-store 撤回到了 Memcached
但是作为 cache 本身就应该尽量提高命中率,如果没有命中率那也没有必要 cache。因此你说的这个特性先不说 redis 是否具备,其本身就是站不住脚的。
@nowazhu 是被覆盖掉
when new data is added to the server, and the memory limit was already reached, the server will remove some old data deleting a volatile key, that is, a key with an EXPIRE (a timeout) set, even if the key is still far from expiring automatically
@aNdReW_Qx memcached 当掉是否崩溃这和你的应用设计的好坏有关,如果你严重依赖缓存容器,无论用什么挂掉都会影响你的应用。 理想的做法是缓存一份,db 里一份,缓存定期或按阀值 write back 到 db。这样即使缓存容器挂掉你的应用也是正常的。
比如未读数这个例子:
def unread_num
unread_num_from_cache || read_attribute(:unread_num)
end
为啥不用 mongo-store http://seal-7.blogspot.com/2011/11/rails-benchmarking-reloaded.html