首页 文章

与Redis相比,memcached是恐龙吗? [关闭]

提问于
浏览
179

在过去的几周里,我在memcached上做了很多工作,刚刚发现了Redis . 当我读到他们自述的这一部分时,我突然感到内心温暖舒适的感觉:

Redis可用作类固醇的memcached,因为它与memcached一样快,但具有更多功能 . 与memcached一样,Redis也支持为键设置超时,以便在给定时间过后自动删除此键 .

听起来很神奇 . 我还发现这个页面有基准:http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison

所以,老实说 - 与这个名为Redis的新人相比,从性能角度来看,memcache真的是那个古老的dinousaur吗?

我以前没有听过很多关于Redis的信息,因此我的问题就是解决方法!

6 回答

  • 12

    Redis没有做的memcached是最近最少使用的从缓存中逐出的值 . 使用memcached,您可以安全地设置任意数量的值,当它们溢出内存时,最近未使用的值将被删除 . 使用Redis,您只能通过设置所有内容的超时来近似此值;当它需要释放内存时,它将查看三个随机键并删除最接近过期的键 .

    如果你只是将它用作缓存,那就是主要区别 .

  • 46

    所以,老实说 - 与这个名为Redis的新人相比,memcache真的是那种老式的dinousaur从性能角度来看是一个糟糕的选择吗?

    • 比较功能设置然后 Redis 具有更多功能;

    • 比较安装方便 Redis 也容易多了 . 不需要依赖;

    • 比较积极发展 Redis 也更好;

    • 我相信 memcachedRedis 快一点 . 它根本不接触光盘;

    • 我的观点是 Redis 是比 memcached 更好的产品 .

  • 72

    Memcache仍然是一个很好的工具,非常可靠 .

    而不是从这个问题的角度来看这个问题,而不是在<100毫秒范围内找到谁更快,看一下软件的每个“类”的性能 .

    • 它只使用本地ram吗? - >最快

    • 它是否使用远程ram? - >快

    • 是否使用ram plus hardddisk - >哦喔 .

    • 它只使用硬盘 - >运行!

  • 81

    取决于你需要什么,总的来说我认为:

    • 你不应该太在乎表演 . Redis每个核心的速度更快,值很小,但是memcached能够在没有客户端帮助的情况下将多个核心与单个可执行文件和TCP端口一起使用 . memcached也更快,大值为100k . Redis最近对大值(不稳定分支)进行了很多改进,但在这个用例中memcached仍然更快 . 这里的要点是:一个或另一个可能不会成为他们可以提供的每秒查询的瓶颈 .

    • 你应该关心内存使用情况 . 对于简单的键值对,memcached的内存效率更高 . 如果使用Redis哈希,Redis的内存效率更高 . 取决于用例 .

    • 您应该关心持久性和复制,这两个功能仅在Redis中可用 . 即使您的目标是构建缓存,在升级或重启后您的数据仍然存在也会有所帮助 .

    • 您应该关心您需要的操作类型 . 在Redis中有许多复杂的操作,即使只考虑缓存用例,您通常可以在单个操作中执行更多操作,而无需在客户端处理数据(有时需要大量I / O) . 此操作通常与普通GET和SET一样快 . 因此,如果您不需要GET / SET,但更复杂的事情,Redis可以提供很多帮助(想想时间线缓存) .

    没有用例现在很难选择,但我认为Redis有很多东西是有意义的,因为即使你不想将它用作数据库,你也可以解决更多问题,不只是缓存,甚至是消息传递,排名等等 .

    附:当然,因为我是Redis项目的首席开发人员,所以我可能会有偏见 .

  • 199

    您可能还想看看Membase .

    http://www.northscale.com/products/membase_server.html

    我没有使用它,但它似乎与Redis类似,因为它是一个以内存为中心的KV商店,具有持久性 . 与我所看到的主要区别是:

    • Redis具有更多的数据处理能力(有序集等)

    • Redis有一个挂起的Redis Cluster项目可以添加水平可扩展性

    • Redis基于混合算法将单层数据卸载到磁盘(VM),该算法同时考虑LRU和对象的大小 .

    • Membase使用memcached有线协议 - 作为现有应用程序的升级路径很有用

    • Membase设置为使用分布式散列表方法水平扩展

    • Membase可以使用LRU方法支持多层数据卸载(非常少用于磁盘,很少有东西进入SSD,频繁的东西留在RAM中)

    • 不确定Membase中的TTL功能 .

    选择可能取决于您的应用程序可以在多大程度上利用Redis中的额外数据操作功能 .

  • 0

    Hazelcast本身支持memcached协议

    https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html

    因此是memcached的现代替代品 . 您应该尝试所有解决方案,看看什么最适合您 .

相关问题