本文共 838 字,大约阅读时间需要 2 分钟。
1)Redis支持服务器端的数据操作:
Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去,这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的数据操作通常和一般的SET和GET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么redis会是不错的选择。2)内存使用效率对比:
使用简单的key-value存储,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。3)性能对比:
由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。4)集群模式:
Memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片(一致性hash算法)写入数据。但是Redis目前时原生支持集群模式的。Redis Cluster是一个实现了分布式且允许单点故障的Redis高级版本,它没有中心节点,具有线性可伸缩的功能。5)数据存储:
都是将数据存放在内存中,不过memcached还可以用于缓存其他东西,如图片,视频等。memcached把数据全部存在内存中,断电之后会挂掉,数据不能超过内存大小;redis可对数据进行持久化,存在磁盘,重启会重新加载数据到redis中。同时redis并不是所有的数据都一直存在内存中,当物理内存用完时,redis可以将一些很久没用到的value交换到磁盘中,但memcached超过内存比例会抹掉前面的数据。6)Memcached支持多核多线程,Redis单线程操作。
转载地址:http://zwken.baihongyu.com/