是否有一個常見的api,如果我在Redis或Memcached之間切換,我不必更改我的代碼,只需要一個配置設置?Rails和緩存,是否容易在memcache和redis之間切換?
回答
只要你不自己初始化Memcached的客戶端,但你要靠Rails.cache
通用的API,切換從memcached來Redis的僅僅是一個安裝redis-store和
config.cache_store = :memcached_store
到
改變配置的事config.cache_store = :redis_store
我討厭混淆你的目標,但我建議不要在memcached上使用redis來進行泛型導軌緩存。
我在一個大的rails應用程序中廣泛使用redis和resque,我認爲將緩存,原始redis和resque整合到一個應用程序中會很好。我碰到幾個大問題:
- 首先,它比較慢。它可能完全是我的具體用法,redis-store庫或redis本身。我不會糟mouth任何東西,你的里程可能會有所不同,但是當memcached「正常工作」時會傾倒大量時間切換到redis
- Memcached很不錯,因爲它非常容易添加服務器並使用一致的哈希完成你的目標。 Redis也有,但根據我的經驗,很難在應用程序的某些部分同時將redis同時視爲單一數據存儲區,並且在其他部分將其視爲分佈式,一致散列的緩存存儲區。
祝您的項目順利。我喜歡redis和memcached,並在我的所有項目中使用它們,但是我讓它作爲kick-ass數據結構服務器工作,並讓其他人在緩存中發揮作用。
http://seal-7.blogspot.com/2011/11/rails-benchmarking-reloaded.html – 2011-11-25 07:49:24
memcached的吞吐量比Redis更高,因爲它是一個簡單的鍵值存儲,因爲memcached是多線程的,Redis是單線程的。因此,Redis很快就會消耗100%的CPU內核,達到最高性能,而memcached會盡可能多地使用您的CPU內核,因此其最大吞吐量的規模要高得多。在單核系統上(誰使用這些系統?)Redis的速度可能會更快,但是當您使用Redis的附加數據類型或持久性或其他功能時,Redis確實是非常有用的。 – ColinM 2013-01-17 19:16:01
這實際上並沒有解決這個問題,而且我也不認爲你的一次性經驗值得建議不要使用Redis進行緩存,因爲看起來很多人正在成功地使用它。 – Yarin 2014-02-15 04:47:36
Redis的整齊部分包括緩存「基於列表」的事物 - 在應用程序中發生事件時從這個列表推送/彈出事件。
不是從memcached中反序列化一個大的值,編輯它,然後重新序列化它。
這將在自定義過濾器中的ruby代碼中完成,與基本的rails緩存相比。
- 1. 使用memcache或redis時,rails是否具有內存緩存?
- 2. Redis和Rails計數器緩存列
- 3. 用Cedar/Memcache/Rails 3.1緩存
- 4. 「/\((.*)\)/」和「/ \(([^ \)] *)\)/」之間是否存在差異?
- 5. 在gvim中的Taglist和緩衝區之間切換
- 6. memcache交易和協調
- 7. GIT和VSTUDIO:在GIT分支之間切換時,視覺工作室緩存文件是否會引起問題?
- 8. 如何在AndroidElement和WebElement之間切換?
- 9. 在Anaconda和Anaconda3之間切換
- 10. iPhone:IB,在iPhone和iPad之間切換
- 11. 在UITabBarController和UINavigationController之間切換
- 12. 在EntityFramework和NHibernate之間切換
- 13. UITextField - 在鍵盤和UIPickerView之間切換
- 14. 如何在DataGridViewTextBoxCell和DataGridViewComboBoxCell之間切換?
- 15. 如何在2.4GHz和5GHz之間切換
- 16. 在Xcode 4.0.2和4.2之間切換
- 17. 如何在mysqli_real_escape_string和\ nl之間切換?
- 18. 在doubleTap和Swipe之間切換
- 19. 在html和php之間切換
- 20. 用redis Rails頁面緩存?
- 21. Rails 3.1 i18n和memcache
- 22. Redis配置pubsub和緩存在AWS EC2
- 23. 在磁盤H2和內存數據庫之間來回切換
- 24. Azure Redis緩存和用於輸出緩存的In-role緩存之間的性能差異
- 25. 在Eclipse CDT中是否有任何快捷鍵在.cc和.h之間切換?
- 26. redis是否支持服務器和客戶端之間的UDP
- 27. Memcache和APC是否在一起?
- 28. memcache和python字典之間的區別
- 29. Subversion和標籤之間的切換
- 30. 縱向和橫向之間切換
如何使用Redis進行片段緩存和Sidekiq作業,而不會最終耗盡內存?是否可以使用相同的Redis實例來始終堅持Sidekiq作業,但是對於片段使用先進先出的方法? – Mohamad 2015-09-22 14:20:25