Redis的过期策略和内存淘汰
Redis的过期策略和内存淘汰
在redis中存在两种对内容的删除,一种是主动叫过期策略,主动删除已过期的键,一种是被动的叫内存淘汰策略(当内存不够用时)。
过期策略:
惰性删除:
当对某个键进行访问时,会先检查该键是否已过期,如果过期了则删除,并返回空值。优点是对CPU友好,但是会长期占用内存,造成浪费。
定期删除:
redis在后台定期执行任务,主动抽样并删除过期键,防止其长期占用内存。优点是对cpu和内存的均衡策略,虽然不能删除全量的过期键,但在开销可控的情况下有效避免过期键大量堆积。
内存淘汰:
不淘汰策略:默认策略,到达内存上限后,拒绝所有写入请求并返回错误,但是读请求和删除请求可以响应。
淘汰有过期时间的数据:
volatile-LRU:移除最近最少使用
volatile-LFU:移除使用频率最低的
volatile-TTL:优先移除剩余生存时间最短的即将过期的键
volatile-RANDOM:在设置了过期时间的键中随机移除任意键
淘汰所有数据:
allkeys-LRU:
allkeys-LFU:
allkeys-random:

浙公网安备 33010602011771号