大家好,欢迎来到IT知识分享网。
有错误处或者有遗漏的知识点,欢迎评论区指出
一、键过期删除策略
1.1 策略介绍和配置
三种策略优劣对比
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和复制功能对过期键的处理
1.3 从库访问过期键的bug
从1.2可以得知,从服务器会写入过期键。客户端在访问该键时,从服务器会正常返回该值。直到主服务器删除了该键,从服务器才会删除该键。这可能会对业务产生一定的影响。
有两个解决办法:
- 升级Redis到3.2版本。
- 业务在访问key时,对过期时间做判断。
二、淘汰策略
Redis 通过淘汰策略来管理内存使用情况,以避免内存溢出。
Redis 的淘汰策略是指,当 Redis 的内存使用量达到用户预设的阈值时,Redis 会根据预设的策略去删除一些数据来释放内存空间。
通过配置文件设置淘汰策略(修改redis.conf文件),修改后重启redis生效
maxmemory-policy volatile-lru
从库淘汰策略设置
noeviction一般用在Redis的从库上,从库不能使用其他具体的淘汰策略,否则将会造成主从之间的数据不一致。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6140.html