Reids和Memcached对比
本文简单介绍了Redis和Memcached的区别
对比
- 数据类型
- Redis支持String、hash等5种类型
- Memcached只支持hash
- 单线程和多线程
- Redis是单线程请求,所有命令串行执行,并发情况下数据是一致的;但是性能受限于CPU,单实例的QPS在4-6w
- Memcached是多线程,在单实例的情况下,可以达到写入60-80w qps,读80-100w
- 持久化
- Redis支持持久化,使用AOF或者RDB
- Memcached不支持持久化
- 对热点、bigkey的支持
- QPS较高的情况下容易造成redis阻塞:单线程CPU饱和
- memcached多线程,支持较好
- 高可用/HA
- Redis哨兵模式master-slave,支持多级复制和增量复制
- Memcached无法高可用
- 发布订阅
- Redis支持pub/sub,可以用来订阅和通知
- Memcached没有订阅
总结
- Memcached可以提供更高的QPS,在请求量巨大的时候可以使用Memcached
- Memcached无法持久化且可用性不高,在承载巨大的并发请求时,应采用多活结构来提高可用性
- 可以一台服务器部署多个Memcached实例,减少单实例的压力
- 大部分情况应使用Redis,毕竟Redis可用性高,支持持久化