Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」

Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」有错误处或者有遗漏的知识点,欢迎评论区指出一、键过期删除策略1.1 策略介绍和配置三种策略优劣对比Redis服务器一般是使用惰性删除和定期删除两

大家好,欢迎来到IT知识分享网。

有错误处或者有遗漏的知识点,欢迎评论区指出

一、键过期删除策略

1.1 策略介绍和配置

Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」

三种策略优劣对比

Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」

Redis服务器一般是使用惰性删除和定期删除两种策略,通过配合使用这两种删除策略,服务器可以很好地合理使用CPU时间和避免浪费内存空间之间取得平衡。

定时策略

通过使用定时器,可以及时删除过期键,及时释放内存。目前该方案只存在理论中,Redis目前还未给予支持。

惰性删除

在redis.conf文件中,可以使用如下配置来设置Redis过期键的惰性删除

# 开启过期键惰性删除
lazyfree-lazy-eviction yes

IT知识分享网

定期删除

定期(比如间隔100ms)执行一次,每次执行都顺序从Redis中获取一部分键,并将已过期的键删除。

默认情况下,hz配置项的值为10,表示1s内执行10次。如果需要修改,可以在redis.conf文件中添加如下配置:

IT知识分享网# 设置hz的值为100
hz 100

注意:Redis中的hz配置项并不是用来设置过期键定期删除的,它是用来设置Redis服务器的事件处理频率的。Redis服务器会定期执行一些事件,例如过期键惰性删除、心跳检测、脚本执行等。这些事件的执行频率就是由hz配置项来决定的。

1.2 AOF、RDB和复制功能对过期键的处理

Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」

1.3 从库访问过期键的bug

从1.2可以得知,从服务器会写入过期键。客户端在访问该键时,从服务器会正常返回该值。直到主服务器删除了该键,从服务器才会删除该键。这可能会对业务产生一定的影响。

Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」

有两个解决办法:

    • 升级Redis到3.2版本。
    • 业务在访问key时,对过期时间做判断。

二、淘汰策略

Redis 通过淘汰策略来管理内存使用情况,以避免内存溢出。

Redis 的淘汰策略是指,当 Redis 的内存使用量达到用户预设的阈值时,Redis 会根据预设的策略去删除一些数据来释放内存空间。

Redis键过期删除策略和淘汰策略面试点汇总「建议收藏」

通过配置文件设置淘汰策略(修改redis.conf文件),修改后重启redis生效

maxmemory-policy volatile-lru

从库淘汰策略设置

noeviction一般用在Redis的从库上,从库不能使用其他具体的淘汰策略,否则将会造成主从之间的数据不一致。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6140.html

(0)
上一篇 2022-12-18 09:00
下一篇 2022-12-18 09:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信