redis使用场景——缓存——数据淘汰策略
数据淘汰策略
当内存达到 maxmemory 限制时,Redis 会根据配置的策略自动淘汰数据,策略通过 maxmemory-policy 参数指定:
# 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 | 需保留部分高频访问的持久数据 |