redis的过期键的删除策略
redis是key-value数据库,我们可以设置redis中缓存的key的过期时间。redis的过期策略就是指当redis中缓存的key过期了,redis如何处理。
- 惰性删除:只有当访问一个key时,才会判断该key是否已经过期,过期则删除。该策略可以最大化节省CPU资源,却对内存非常不友好。极端情况也能出现大量的过期key没有再次被访问,从而不会被清楚,占用大量内存。
- 定期删除:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中过期的key。
expires字典会保存所有设置了过期时间的key的过期时间数据,其中,key是指向键空间中的某个键的指针,value是该键的毫秒精度的UNIX时间戳表示的过期时间。键空间是指该redis集群中保存的所有键。
redis使用了惰性删除和定期删除两种过期策略。