Caffeine的expireAfterWrite过期机制确实主要依赖懒判断(惰性清理)。1. 核心实现原理:当写入缓存时,Caffeine并不会马上创建定时器监控过期时间,而是在读取缓存项时同步检查时间戳。如果发现距离写入时间已超过设定阈值,则会自动将该数据标记为失效并清理。2. 触发清理的两种情况:(1)被动触发:每次调用get方法时自动检测时效性,过期则清除后返回空值(2)主动维护:后台维护线程会周期性地抽检部分数据(但频率远低于实时监控),这种组合设计既能保证时效性,又避免了频繁扫描带来的性能损耗。这种机制类似于超市食品货架的管理方式:员工不会每天盘点所有商品,而是顾客拿起商品时会检查保质期,同时进行定期货架巡检。相较于实时监控体系,既节省资源又满足实用需求。多数高性能缓存框架(如Redis、Memcached)都采用类似的混合清理策略。Caffeine还支持expireAfterAccess(访问后过期)等其他策略,写入超时场景下同时设置maximumSize限制缓存总量,可更好防止内存溢出。在实际编码中,建议通过recordStats()方法开启命中率统计,便于评估缓存配置合理性。