Redis中Key的过期策略

1.立即删除:

        在设置键的过期时间时,会创建一个回调事件,当过期时间达到时, 自动执行回调事件去删除键。但是立即删除对 cpu 是最不友好的。

2.惰性删除:

        惰性删除是指某个键值过期后,此键值不会马上被删除,而是加入到删除字典(dict和expires)当中,等到下次被使用的时候,才会被检查到过期,此时才能得到删除。所以惰性删除的缺点就是会浪费内存

3.定期删除:

        每隔一段时间,对删除字典中进行检查,删除里面的过期键。

        可以看到,第二种为被动删除第一种和第三种为主动删除,且第一种实时性更高。每隔一段时间执行一次删除操作,并通过限制删除操作执行的时长和频率,来减少删除操作对 cpu 的影响。另一方面定时删除也有效的减少了因惰性删除带来的内存浪费。

所以redis使用的过期键值删除策略是:惰性删除加上定期删除,两者配合使用。

你可能感兴趣的:(java进阶,redis,数据库,缓存)