乐趣区

聊聊Redis和Memcached有啥区别

要说 redis 和 memcached 有啥区别这事吧?说起来就比较多,随着 redis 的功能越来越完善和强大,现在使用 memcached 的公司基本没有了,这里我们就来聊聊 redis 作者给出的几点区别吧。

1、redis 支持服务端的数据操作

redis 相比 memcached 来说,拥有更多的数据结构并且支持丰富的数据操作。
通常在 memcached 里,你需要将数据拿到客户端来进行类似的修改在 set 回去。这就大大增加网络 IO 的次数和数据的体积。
在 redis 中,这些复杂的操作通常和一般的 GET/SET 一样高效。
所以如果需要缓存能够支持更复杂的结构和操作,那么 redis 会是一个不错的选择。

2、内存使用率对比

使用简单的 key-value 存储的话,memcached 的内存使用率更高,而如果 redis 采用 hash 结构来做 key-value 存储的,由于某组合式的压缩,其内存使用率会高于 memcached。

3、性能对比

由于 redis 只使用单核,而 memcached 可以使用多核,所以平均每个核上 redis 在存储小数据时性能上比 memcached 性能高,而在 100k 以上的数据中 memcached 的性能高。虽然 redis 也在存储大数据的性能上进行优化,但是比起 memcached 来说还是稍逊一筹。

4、集群模式

memcached 没有原生的集群模式,需要依赖客户端来实现往集群中分片写入数据,而 redis 原生就支持 claster 模式的。

基本就这四点了,其实我觉得主要也就 1、4 比较重要点,其它的也就不是那么重要。

而且现在确实 memcached 慢慢淡出了人们的视野。

退出移动版