删除策略:是当数据到期,redis对过期数据的处理策略。

1.定时删除:当某一个key的过期时间到达后,redis就把对应的value和key删除。

优点是省内存,能快速的把过期数据删除腾出空间。

缺点是CPU资源占用过高,尤其是当CPU还在尽力处理其他事情的时候,这时候如果有key过期,就可能两边(redis和其他服务)体验都不好,并且当定时key越多,分配的资源就越多,就越影响性能。

2.惰性删除:数据过期不是立刻删除,而是要获取数据的时候判断是否过期,如果过期再删除。

优点是节约CPU资源。

缺点是有较大的OOM风险。

3.定期删除:走定时任务,随机清理过期的数据。这个定时任务是通过时间进行资源分配的,比如1秒钟抽出0.1秒来执行删除任务。

这种策略是1和2的折中策略,优点是比1、2两个缺点好点,缺点是比1、2两个优点差点。

淘汰策略:是当数据放不下的时候,淘汰其他数据的策略。

相关配置:

1:maxmemory ?mb 释:分配给redis的内存大小 ,触发淘汰策略的阈值。

2:maxmemory-samples count 释:每次选取待删除数据的个数,采用随机获取数据的方式作为待检测删除数据。

3:maxmemory-policy noeviction 一共8个值。

1)noeviction: 不删除,直接返回报错信息。
2)allkeys-lru:移除最久未使用(使用频率最少)使用的key。
3)volatile-lru:在设置了过期时间的key中,移除最久未使用的key。
4)allkeys-random:随机移除某个key。
5)volatile-random:在设置了过期时间的key中,随机移除某个key。
6)volatile-ttl: 在设置了过期时间的key中,移除准备过期的key。
7)allkeys-lfu:移除最近最少使用的key。
8)volatile-lfu:在设置了过期时间的key中,移除最近最少使用的key。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐