Redis 和 Memcached 都是企业常用缓存工具,现在从以下几点分析两者的区别
- 数据类型
- 内存管理
- 数据备份和持久化
- 并发性能
- 可用性, 可靠性,一致性
- 特殊场景
1、数据类型
memcached 仅仅支持简单的key-value结构数据, Redis 支持的数据结构比较丰富, String Hash List Set SortedSet; 开发中Hash 数据格式使用较多
2、内存管理
memcached 预设内存以存贮相对应key-value 数据,容易产生内存内存碎片; 当断电或者数据容量大于内存时内存数据将被删除;简单的使用key-value话mamcached 效率比较高
redis 将数据都缓存在内存中,当出现断电或者数据容量大于内存时内存数据时部分数据将被刷到磁盘上,很好支持数据落地;
3、数据备份和持久化
在备份容错方面 memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复,Redis支持数据的备份,即master-slave模式的数据备份
4、并发性能
redis 是单核, Memcached 是多核处理,对于简单的key-value数据mamcached 内存利用率比较高;
redis 使用hash 数据结构对组合key 进行压缩,在高并发大数据量下内存利用率要高于redis;
5、可用性, 可靠性,一致性
Memcached的优点:
1、Memcached可以利用多核优势,单实例吞吐量极高,可