import cn.hutool.cache.impl.TimedCache; public class TimedCacheLifecycle { public static void main(String[] args) throws InterruptedException { // 1. 创建缓存默认过期时间2秒 TimedCacheString, String cache new TimedCache(2000); // 2. 启动定时清理每1秒一次 cache.schedulePrune(1000); // 3. 添加数据 cache.put(short, 短期数据, 1000); // 1秒过期 cache.put(medium, 中期数据, 3000); // 3秒过期 cache.put(long, 长期数据); // 默认2秒过期 // 4. 监控状态 for (int i 0; i 5; i) { System.out.println(\n 第 (i1) 秒 ); System.out.println(缓存大小: cache.size()); System.out.println(short: cache.get(short)); System.out.println(medium: cache.get(medium)); System.out.println(long: cache.get(long)); Thread.sleep(1000); } // 5. 清理资源 cache.clear(); cache.cancelPruneSchedule(); } }回到顶部 总结TimedCache的自动清理机制不会立即自动清理默认只有惰性清理需要手动启动定时清理通过schedulePrune()方法清理策略可配置可以根据业务需求选择清理频率最佳实践在创建TimedCache后立即调用schedulePrune()以确保过期数据会被及时清理避免内存泄漏问题。public final class LocalCacheUtil { private static TimedCacheString, Object timedCache new TimedCache(DAYS.toMillis(1)); static { // init prune schedule at fix rate timedCache.schedulePrune(MINUTES.toMillis(3)); } ... }