当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-缓存过期都有哪些策略?

金三银四精选java面试题-缓存过期都有哪些策略?

来源:图灵教育
时间:2023-12-24 09:38:28
 

缓存过期都有哪些策略?

  • 定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立 即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量
  • 惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,但是很消耗内存、许多的过期数据都还存在内存中。极端情况可能出现大量的过期key没有 再次被访问,从而不会被清除,占用大量内存。
  • 定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key(是随机的), 并清除其中已过期的key。该策略是定时过期和惰性过期的折中方案。通过调整定时扫描的时间间隔和 每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。
  • 分桶策略:定期过期的优化,将过期时间点相近的key放在一起,按时间扫描分桶。