Redis 过期策略

Redis 所有的数据结构都可以设置过期时间,同时Redis 是单线程的。

在同一时刻如果有太多的key过期,删除的时间也会占用线程的处理时间,将有可能导致线上读写指令出现卡顿。

 

过期集合

redis 会将每个设置了过期时间的key存储到一个独立的字典中,定时遍历字典来删除到期的key。

同时,它还采用了惰性策略来删除过期的key,在客户端访问这个key时,对key进行过期校验,如果过期则删除。

 

定时删除策略

Redis默认会每秒进行十次过期扫描,每次扫描从过期字典中取20个key进行删除,如果过期的key比例超过现有key集合1/4将重复取过期key进行删除。

同时为了保证循环过多导致线程卡死,每次扫描过期字典最多25ms

所以这也就要求我们每次对redis的key值设置过期时间尽量分散一些

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章