【问题标题】:memcache vs redis [closed]memcache vs redis [关闭]
【发布时间】:2013-07-16 22:05:10
【问题描述】:

我正在使用 node 和 php,对于 node,我听说过 redis 用于缓存系统和 php memcached

我已经测试了设置和获取 10000 个项目的简单测试:

memcached 比 redis 快 10 倍(是的,10 倍),而且很容易说 memcached 在速度方面更好。

但我听说 memcached 不像 redis 那样缩放,是真的吗?我可以看到当我想用添加服务器功能连接memcache时,我可以使用多台服务器,所以,为什么人们说这在规模上不好?

为什么要在 Node 中使用 redis 而不是 memcached?

【问题讨论】:

  • 我能想到的Redis最大的优势(有几个,但是对目前的memcached了解不多,无法比较集群)就是重启不会丢失内容/机器重启/... 每次重启后 Memcached 为空,Redis 将保留其内容。例如,对于会话数据很方便。
  • @JoachimIsaksson 我认为 Redis 只在我们询问时才将数据存储在磁盘上,所以如果我们不询问并且断电会发生什么?
  • Memcache vs. Redis? 的可能重复项
  • 如果你想对 Redis 进行基准测试,请阅读:redis.io/topics/benchmarks

标签: php node.js redis memcached


【解决方案1】:

如果你再深入一点,你会发现,memcache 是多线程的,而 redis 主要是单线程的(参见 Single threaded nature of Redis)。

因此,如果您要在多核处理器上进行基准测试,memcache 将能够利用内核扩展其性能,而 redis 则不能。

为了弥补这种单线程特性,正在开发 redis 集群(就像节点具有集群模块一样)。 Memcache 已经是分布式的并且支持集群。 Redis 预计将在今年年底推出集群(稳定版)。请记住,它仍然是新的,而且 memcache 已经存在了十年。

在我发现的所有基准测试中,one 正确解释了基准测试的各个方面。查看最后一个没有并行性的基准。他们的表现几乎不相上下。

编辑

关于它们之间的选择,这个问题Is memcached a dinosaur in comparison to Redis? 有很多很好的答案,尤其是这个one。相同的guy 回答了这些基准测试:

  1. http://oldblog.antirez.com/post/redis-memcached-benchmark.html
  2. http://oldblog.antirez.com/post/update-on-memcached-redis-benchmark.html

此外,您需要了解的有关性能和基准测试的大部分主题都提供给here,包括上述所有基准测试。

【讨论】:

  • 很多 7 YO 文章.. 你能提供一些当前的文章来测试差异吗?
  • this article你可以看到为什么redis更好用。
【解决方案2】:
  1. 我的猜测是您没有以最佳方式配置 Redis,或者您的测试中有其他问题。针对 Redis 和 Memcached 进行了很多基准测试,结果为 always closefrequently with Redis as the winner
  2. this SO question 有详细回复为什么要使用一个与另一个。

【讨论】:

    猜你喜欢
    • 2013-12-08
    • 2011-05-05
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    相关资源
    最近更新 更多