Redis的过期策略和内存淘汰

Redis的过期策略和内存淘汰

在redis中存在两种对内容的删除,一种是主动叫过期策略,主动删除已过期的键,一种是被动的叫内存淘汰策略(当内存不够用时)。

过期策略:

​ 惰性删除:

​ 当对某个键进行访问时,会先检查该键是否已过期,如果过期了则删除,并返回空值。优点是对CPU友好,但是会长期占用内存,造成浪费。

​ 定期删除:

​ redis在后台定期执行任务,主动抽样并删除过期键,防止其长期占用内存。优点是对cpu和内存的均衡策略,虽然不能删除全量的过期键,但在开销可控的情况下有效避免过期键大量堆积。

内存淘汰:

​ 不淘汰策略:默认策略,到达内存上限后,拒绝所有写入请求并返回错误,但是读请求和删除请求可以响应。

​ 淘汰有过期时间的数据:

​ volatile-LRU:移除最近最少使用

​ volatile-LFU:移除使用频率最低的

​ volatile-TTL:优先移除剩余生存时间最短的即将过期的键

​ volatile-RANDOM:在设置了过期时间的键中随机移除任意键

​ 淘汰所有数据:

​ allkeys-LRU:

​ allkeys-LFU:

​ allkeys-random:

posted @ 2026-04-30 09:41  xzlrf  阅读(14)  评论(0)    收藏  举报