业务系统中,我们经常使用缓存来提高读接口的性能、减轻DB的压力。
缓存选型中,摆在我们面前的往往有这两个: Redis
和 Memcache
,那么我们应该选择哪一个呢?
我们先来分析下两者的显著不同点
存储介质的不同
Memcache 是把数据存储在内存中。如果遇到断电、缓存服务宕机,数据是会丢失的,不可恢复。
Redis 的数据存储在内存和硬盘中(冷数据可放在硬盘),并且在服务宕机后支持从硬盘中恢复数据到内存中,支持持久化。
数据格式的不同
Memcache 仅支持简单的 key:value 类型的数据。
Redis 除支持 kv 类型的数据外,还支持 list
set
hash
hash
等类型的数据,并且支持排序。
结论
- 业务要求数据不可丢,选 Redis
- 存储数据格式多样化,对数据有较高的处理要求,选 Redis
- 定位缓存且数据格式单一,选 Memcache