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 删除策略的主要内容,如果未能解决你的问题,请参考以下文章