2010-11-19 56 views

回答

42

只要你不自己初始化Memcached的客户端,但你要靠Rails.cache通用的API,切换从memcached来Redis的仅仅是一个安装redis-store

config.cache_store = :memcached_store 

改变配置的事
config.cache_store = :redis_store 

更多info about Rails.cache

+1

如何使用Redis进行片段缓存和Sidekiq作业,而不会最终耗尽内存?是否可以使用相同的Redis实例来始终坚持Sidekiq作业,但是对于片段使用先进先出的方法? – Mohamad 2015-09-22 14:20:25

37

我讨厌混淆你的目标,但我建议不要在memcached上使用redis来进行泛型导轨缓存。

我在一个大的rails应用程序中广泛使用redis和resque,我认为将缓存,原始redis和resque整合到一个应用程序中会很好。我碰到几个大问题:

  1. 首先,它比较慢。它可能完全是我的具体用法,redis-store库或redis本身。我不会糟mouth任何东西,你的里程可能会有所不同,但是当memcached“正常工作”时会倾倒大量时间切换到redis
  2. Memcached很不错,因为它非常容易添加服务器并使用一致的哈希完成你的目标。 Redis也有,但根据我的经验,很难在应用程序的某些部分同时将redis同时视为单一数据存储区,并且在其他部分将其视为分布式,一致散列的缓存存储区。

祝您的项目顺利。我喜欢redis和memcached,并在我的所有项目中使用它们,但是我让它作为kick-ass数据结构服务器工作,并让其他人在缓存中发挥作用。

+5

http://seal-7.blogspot.com/2011/11/rails-benchmarking-reloaded.html – 2011-11-25 07:49:24

+9

memcached的吞吐量比Redis更高,因为它是一个简单的键值存储,因为memcached是多线程的,Redis是单线程的。因此,Redis很快就会消耗100%的CPU内核,达到最高性能,而memcached会尽可能多地使用您的CPU内核,因此其最大吞吐量的规模要高得多。在单核系统上(谁使用这些系统?)Redis的速度可能会更快,但是当您使用Redis的附加数据类型或持久性或其他功能时,Redis确实是非常有用的。 – ColinM 2013-01-17 19:16:01

+2

这实际上并没有解决这个问题,而且我也不认为你的一次性经验值得建议不要使用Redis进行缓存,因为看起来很多人正在成功地使用它。 – Yarin 2014-02-15 04:47:36

2

Redis的整齐部分包括缓存“基于列表”的事物 - 在应用程序中发生事件时从这个列表推送/弹出事件。

不是从memcached中反序列化一个大的值,编辑它,然后重新序列化它。

这将在自定义过滤器中的ruby代码中完成,与基本的rails缓存相比。

相关问题