Redis过期删除策略:Redis的过期策略就是指当Redis缓存中key过期
惰性删除:当访问key时,才会判断这个key是否过期,过期则删除,该策略可以最大化的节省CPU资源,但是对内存不友好,当出现大量key过期却没有被访问到,就不会被删除,从而占用大量内存。
定期删除:每隔一定的时间,会扫描一定数量的key,并删除过期的key,通过调整定时扫描的时间间隔和每次主动扫描的限定耗时,可以在不同情况下使CPU和内存资源达到最优化。
Redis是采用惰性删除和定期删除相结合的,但是他俩不能保证所有过期的key都能被删除,随着越来越多的过期key未被删除,可能会导致内存溢出,当内存不足时,Redis会做内存回收,内存回收采用LRU策略,就是将最近最少引用的key删除。原理:记录key最近使用时间,内存回收时会抽取一部分key,比较其使用时间,最老的几个删除。