性能上:
三者都是使用共享内存对数据进行cache来提升数据的读写能力,性能比较高效(还有个ttserver)
操作的便利性上:
memcache数据结构比较单一,都是key-value
cmem比memcache多一个按列模式和局部模式
redis 丰富一些,提供 list,set,hash 等数据结构的存储。
可用性上:
Memcache 本身没有数据冗余机制,对于故障预防,采用依赖成熟的 hash 或者环状的算法,解决单点故障引起的抖动问题
redis依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制
cmem:双机热备,主从切换的时候应用层无需修改配置
可靠性上:
redis 支持(快照、AOF):依赖快照进行持久化,aof 增强了可靠性的同时,对性能有所影响
memcache不支持,通常用在做缓存,提升性能;新浪有个memcacheDB可以做数据持久
cmem采用双机热备外加冷备方式,高可靠,支持定点回档,可解决极端情况下的数据容灾
扩展性上:
cmem支持自动扩容
数据的原子性操作上:
redis接口本身负责原子性操作
memcache、cmem通过cas解决
时间: 2024-10-27 13:01:12