hutool CacheUtil
时间: 2025-07-16 16:23:14 浏览: 9
Hutool 是一个功能丰富的 Java 工具类库,其中的 `CacheUtil` 提供了便捷的缓存操作方式。通过 `TimedCache` 实现内存缓存,并支持设置缓存超时时间以及自动清理过期缓存。
以下是一个使用 Hutool 的 `CacheUtil` 的示例代码:
```java
import cn.hutool.cache.CacheUtil;
import cn.hutool.cache.impl.TimedCache;
public class CacheExample {
// 创建一个默认缓存时间为 1 小时的 TimedCache 实例
private static final TimedCache<String, String> cache = CacheUtil.newTimedCache(60 * 60 * 1000); // 1小时
static {
// 启动定时任务,每 30 秒检查一次缓存并清除过期项
cache.schedulePrune(30_000); // 30秒
}
/**
* 获取缓存值
* @param key 缓存键
* @return 缓存值
*/
public static String getCacheValue(String key) {
return cache.get(key);
}
/**
* 设置缓存值
* @param key 缓存键
* @param value 缓存值
*/
public static void setCacheValue(String key, String value) {
cache.put(key, value);
}
/**
* 清除指定缓存
* @param key 缓存键
*/
public static void removeCacheValue(String key) {
cache.remove(key);
}
/**
* 清空所有缓存
*/
public static void clearAllCache() {
cache.clear();
}
}
```
### 示例说明
- **创建缓存实例**:使用 `CacheUtil.newTimedCache(long timeout)` 方法创建一个具有默认超时时间的缓存实例。
- **定时清理缓存**:调用 `schedulePrune(long delay)` 方法启动后台线程定期检查并清理过期缓存[^1]。
- **添加缓存**:通过 `put(K key, V value)` 方法将数据写入缓存中。
- **获取缓存**:通过 `get(K key)` 方法从缓存中读取数据。
- **删除缓存**:可以使用 `remove(K key)` 删除特定键的缓存条目,也可以使用 `clear()` 清空所有缓存。
### 功能特点
- **自动过期处理**:缓存项在设定的时间后自动失效,适合短期存储临时数据。
- **轻量级实现**:基于简单封装的 `Map` 结构,性能高效且易于集成到项目中。
- **线程安全**:内部实现了线程同步机制,确保多线程环境下的安全性[^3]。
---
阅读全文
相关推荐


















