linux

Redis数据淘汰机制是什么

小樊
44
2025-12-04 16:10:28
栏目: 云计算

Redis 数据淘汰机制概览 当 Redis 使用内存达到配置的 maxmemory 上限时,会根据 maxmemory-policy 执行淘汰,以腾出空间给新写入。该机制用于缓存场景在内存紧张时自动取舍数据,避免进程因 OOM 而异常。Redis 提供 8 种策略,核心权衡维度是:淘汰范围(仅限设置了 TTL 的键,还是全量键)与淘汰依据(LRULFU、随机、TTL 剩余最短)。

策略一览

策略 淘汰范围 依据 典型场景
noeviction 不淘汰,直接拒绝写入 数据不可丢、可接受写入失败
allkeys-lru 全量键 最近最少使用 访问呈幂律分布、希望保留热点
allkeys-lfu 全量键 最不常用(访问频次) 访问频次差异明显
volatile-lru 仅设 TTL 的键 最近最少使用 明确哪些数据可被淘汰
volatile-lfu 仅设 TTL 的键 最不常用 TTL 数据且关注访问频次
allkeys-random 全量键 随机 访问分布均匀、实现简单
volatile-random 仅设 TTL 的键 随机 TTL 数据且不在意命中分布
volatile-ttl 仅设 TTL 的键 剩余 TTL 最短 希望尽快释放即将过期的数据
说明:volatile-* 策略仅在存在可淘汰键时生效;若没有可淘汰键,行为等同于 noeviction

触发时机与执行流程

如何选择策略

配置方法与注意事项

0
看了该问题的人还看了