memcache vs redis

时间:2013-07-18 05:35:25

标签: php node.js redis memcached

我正在使用node和php,对于节点,我听说过redis for cache system和php memcached

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

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

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

为什么我应该在Node中使用redis而不是memcached?

2 个答案:

答案 0 :(得分:4)

如果你想挖掘更多,你会发现,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
  3. 此外,您需要了解有关表演和benchamrks的大部分主题here,其中包括上述所有基准。

答案 1 :(得分:2)

  1. 我的猜测是你没有最佳地配置Redis,或者你的测试中还有其他错误。对Redis和Memcached进行了很多基准测试,结果是always closefrequently with Redis as the winner
  2. 有一个详细的回答,为什么在this SO question使用一对另一个。