试题答案

更新日期:2023-11-16

Redis中缓存的键可以设置过期时间,当过期时间到了后, 通常采用以下三种过期策略删除过期数据以释放内存空间。
1、定时过期:每个设置过期时间的键都创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去检查过期的数据,尤其是在Redis中存在大量设置了过期时间的键时,CPU开销会非常高。
2、惰性过期:只有当访问一个键时,才会判断该键是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好,可能会因为大量的过期键没有被访问而不做清除,占用大量内存。
3、定期清除:每隔一定的时间,程序会对过期键进行扫描并清除其中已过期的键,该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。定期删除函数的运行频率可以通过修改配置文件redis.conf的hz选项来调整。
Redis中同时使用了惰性过期和定期清除两种过期策略。


发表评论

评论数量:0