Memcached和Redis比较

2017-03-01  本文已影响0人  码农也越野

支持的数据类型

Memcached只能存储K-V型数据
redis除了支持K-V型数据,还支持list、set、hash、zset

数据备份

redis支持master-slave形式的数据备份,Memcached不支持数据备份。

持久化

redis支持两种持久化方案:RDB(快照)和AOF(追加日志)。

网络IO模型

内存管理

Memcached采用预分配内存池的方式,优点是降低了申请释放内存的开销,确定是导致空间浪费和内存碎片。
redis采用现场分配内存的方式。一定程度上也会导致内存碎片。

数据一致性

Memcached提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题。 Redis没有提供cas 命令,并不能保证这点,不过Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断。

一个误区

redis并不是将所有的数据都一直存储在内存中的。这是和Memcached相比一个最大的区别。有一个阈值,当内存使用量超过这个阈值后,将触发swap的操作,Redis根据“swappability = age*log(size_in_memory)”计 算出哪些key对应的value需要swap到磁盘。然后会将这些value持久化到磁盘上,同时内存中只保存key,清除value。当请求数据时,如果key对应的value不在内存中,那么Redis就需要从swap文件中加载相应数据,然后再返回给请求方。

上一篇 下一篇

猜你喜欢

热点阅读