2010-11-19 81 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緩存相比。

相關問題