过去几周我在memcached上做了很多工作,刚刚发现了Redis。当我读到他们自述的这一部分时,我的肚子里突然感到一种温暖,舒适的感觉:
Redis可以用作类固醇的memcached因为速度快 memcached但有很多 功能更多。 与memcached一样,Redis也支持为键设置超时 该密钥将自动生效 在给定的时间内删除 通行证。
这听起来很神奇。我还发现这个页面有基准:http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
所以,老实说 - 与这个名为Redis的新人相比,memcache真的是那种老式的dinousaur从表现的角度来看是一个糟糕的选择吗?
我之前没有听过很多关于Redis的信息,因此我的方法就是我的问题!
答案 0 :(得分:200)
取决于您的需求,一般来说我认为:
如果没有用例,现在很难选择,但我认为对于很多事情来说Redis是有道理的,因为即使你不想将它作为数据库使用,你的能力也会更强可以解决更多问题,不仅仅是缓存,甚至是消息传递,排名等等。
P.S。当然,因为我是Redis项目的首席开发人员,所以我可能会有偏见。
答案 1 :(得分:81)
老实说 - 真的是memcache 老dinousaur是一个糟糕的选择 从表现的角度来看 相比这个新人叫 Redis的?
Redis
具有更多功能; Redis
也更容易。不需要依赖项; Redis
也更好; memcached
比Redis
快一点。它根本不接触光盘; Redis
是比memcached
更好的产品。答案 2 :(得分:73)
Memcache仍然是一款非常出色且非常可靠的工具。
而不是从一个角度来看这个问题,而不是在< 100 ms范围,查看软件的每个“类”的性能。
答案 3 :(得分:46)
Redis没有做的memcached是最近最少使用的从缓存中逐出的值。使用memcached,您可以安全地设置任意数量的值,当它们溢出内存时,最近未使用的值将被删除。使用Redis,您只能通过设置所有内容的超时来近似此值;当它需要释放内存时,它将查看三个随机键并删除最接近过期的键。
如果您只是将其用作缓存,则主要区别在于。
答案 4 :(得分:12)
您可能还想看看Membase。
http://www.northscale.com/products/membase_server.html
我没有使用它,但它似乎与Redis类似,因为它是一个以内存为中心的KV存储,具有持久性。与我所看到的主要区别是:
Redis基于混合算法将单层数据卸载到磁盘(VM),该算法同时考虑LRU和对象的大小。
Membase使用memcached有线协议 - 可用作现有应用程序的升级路径
选择可能取决于您的应用程序在Redis中利用额外数据操作功能的程度。
答案 5 :(得分:0)
Hazelcast原生支持memcached协议
因此是memcached的现代替代品。您应该尝试所有解决方案,看看什么最适合您。