redis使用场景------缓存------数据淘汰策略
- 数据淘汰策略
- [8 种淘汰策略对比](#8 种淘汰策略对比)
数据淘汰策略
当内存达到 maxmemory 限制时,Redis 会根据配置的策略自动淘汰数据,策略通过 maxmemory-policy 参数指定:
conf
# redis.conf 示例
maxmemory 2GB
maxmemory-policy volatile-lru
8 种淘汰策略对比
策略 | 规则 | 适用场景 |
---|---|---|
noeviction |
不淘汰数据,拒绝所有写入请求(默认策略) | 数据绝对不可丢失的场景 |
volatile-ttl |
优先淘汰剩余存活时间最短的键(Time To Live) | 需优先清理即将过期的缓存 |
allkeys-random |
随机淘汰全体键 | 数据访问无规律,且可接受任意数据丢失 |
volatile-random |
随机淘汰设置了过期时间的键 | 缓存数据重要性均等 |
allkeys-lru |
淘汰全体键中最近最少使用的(Least Recently Used) | 通用缓存场景(推荐 ) |
volatile-lru |
仅淘汰设置了过期时间的键中的 LRU | 需区分持久数据和缓存数据时 |
allkeys-lfu |
淘汰全体键中访问频率最低的(Least Frequently Used) | 热点数据分布不均匀时(Redis 4.0+) |
volatile-lfu |
仅淘汰设置了过期时间的键中的 LFU | 需保留部分高频访问的持久数据 |