我们都知道redis中的key是可以设置过期时间的,那到了过期时间redis是怎么处理这些key的呢?
首先我们先了解下过期时间是如何存储的....一. key过期时间存储
通过server.h可见,key的过期时间和key本身的信息是分别使用expires和dict两个不同字典存储的.当用户需要判断过期时间时,只需要在过期时间的字典中查找即可....清理过程如下:
(1) 根据配置项hz值,确定serverCron定时任务的执行周期,该默认值为10,即Redis空闲时每秒执行10次.
(2) 每次过期key清理的最大时间不超过cpu时间的25%,即...若有1/4以上key过期,则重复该步骤,否则遍历下一个库.
在清理过程中,若达到了最大清理时间,则退出清理过程.
了解了上述清理过程也就清楚了,为什么redis每次都是删除部分过期key了.....
redis.conf配置如下:
#最大内存,当内存的使用超出了最大内存,就会触发一个清除策略
maxmemory
#设置内存主动清除策略:
#1.volatile-lru 针对设置了过期时间的