Redis缓存过期策略

Redis的缓存过期策略通常有三种:

一、定时过期

每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。

优点:该策略可以立即清除过期的数据,对内存很友好;

缺点:若过期key很多,删除这些key会会占用大量的CPU资源去处理过期的数据,从而影响性能。

二、 惰性过期

只有当访问一个key时,才会判断该key是否已过期,过期则清除。

优点:该策略可以最大化地节省CPU资源:删除操作只发生在取出key的时候发生,而且只删除当前key,所以对CPU时间的占用是比较少的,而且此时的删除是已经到了非做不可的地步(如果此时还不删除的话,我们就会获取到了已经过期的key了)

缺点:对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存,甚至导致内存泄漏。

三、定期过期

每隔一定的时间,会扫描一定数量的的key,并清除其中已过期的key。

该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。

猜你喜欢

转载自blog.csdn.net/baidu_24752135/article/details/114269488