redis 删除策略

Posted 是的哟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 删除策略相关的知识,希望对你有一定的参考价值。

定时删除:创建一个定时器,在键过期时立即删除。

为什么不用定时删除策略:虽然内存及时释放,但太消耗 CPU 资源。

 

定期删除,设置了 expire 的键存储在一个独立的字典中,默认每 100ms 随机选择 20 个 key,删除其中已过期的 key。如果过期 key 比例超过 1/4,那就重复这一步骤。扫描时间上限,默认不会超过 25ms。

定期删除会导致很多 Key 到时间没有删除,浪费内存。

 

惰性删除:键过期后不管,读取时,判断是否过期。同样会浪费内存

 

数据淘汰:在Redis.conf中,允许用户设置最大使用内存大小server.maxmemory,

和淘汰策略maxmemory-policy volatile-lru

Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

 

1.volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰

2.volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰

3.volatile-random:从已设置过期的数据集中任意挑选数据淘汰

4.allkeys-lru:从数据集中挑选最近最少使用的数据淘汰

5.allkeys-random:从数据集中任意挑选数据淘汰

6.noenviction:禁止淘汰数据

redis淘汰数据时还会同步到aof

 

以上是关于redis 删除策略的主要内容,如果未能解决你的问题,请参考以下文章

Redis 配置过期自动删除策略

Redis过期删除策略和内存淘汰策略

Redis过期删除策略和内存淘汰策略

Redis过期键删除策略及回收策略

Redis 键的过期删除策略及缓存淘汰策略

Redis删除缓存策略