是否有一个常见的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. memcache,memcached和redis之间的区别
- 3. WSO2 DSS是否支持Memcache和redis?
- 4. Redis和Rails计数器缓存列
- 5. 在Laravel 5缓存中,文件缓存和redis之间哪个更好?
- 6. 用Cedar/Memcache/Rails 3.1缓存
- 7. 用Django进行redis缓存的django-redis-cache和django-redis之间的区别?
- 8. 在复选框图像之间切换 - 但更容易
- 9. “/\((.*)\)/”和“/ \(([^ \)] *)\)/”之间是否存在差异?
- 10. 天青共享缓存和新天青REDIS缓存之间有什么区别?
- 11. 在gvim中的Taglist和缓冲区之间切换
- 12. memcache交易和协调
- 13. GIT和VSTUDIO:在GIT分支之间切换时,视觉工作室缓存文件是否会引起问题?
- 14. 如何在rails3.2和rails4.0之间切换?
- 15. 在Xcode 4.0.2和4.2之间切换
- 16. stdin在bash和Java之间切换
- 17. 在jframe和jinternalframe之间切换
- 18. 如何在2.4GHz和5GHz之间切换
- 19. 在EntityFramework和NHibernate之间切换
- 20. 如何在AndroidElement和WebElement之间切换?
- 21. 在html和php之间切换
- 22. 在Silverlight和HTML5之间切换
- 23. 在.bind()和.on()之间切换 - 动态
- 24. 在iPhone和iPad之间切换Div
- 25. 在EditorFor和DisplayFor之间切换
- 26. 如何在DataGridViewTextBoxCell和DataGridViewComboBoxCell之间切换?
- 27. iPhone:IB,在iPhone和iPad之间切换
- 28. 同时在TCP和UDP之间切换
- 29. 在Python词典和SQLite之间切换
- 30. 在Anaconda和Anaconda3之间切换
如何使用Redis进行片段缓存和Sidekiq作业,而不会最终耗尽内存?是否可以使用相同的Redis实例来始终坚持Sidekiq作业,但是对于片段使用先进先出的方法? – Mohamad 2015-09-22 14:20:25