跳到主要内容

Cache - 缓存工具

返回文档导航 | 工具类速查表


c 提供统一的缓存接口 ICache 和内存实现 MemoryCache

ICache 接口

public interface ICache {
<T extends Serializable> T get(String name, Serializable key, Type type);
void put(String name, Serializable key, Serializable value, int seconds);
void remove(String name, Serializable key);
void removeAll(String name);
Set<String> keys(String name, String keyPrefix);
Map<String, Serializable> all(String name, String keyPrefix);
<T> T getAndSet(String name, Serializable key, Callable<VAL<T, Integer>> valueLoader);
}

MemoryCache 使用

ICache cache = new MemoryCache();

// 基本操作
cache.put("user", "123", userObject, 3600); // 1小时过期
User user = cache.get("user", "123", User.class);
cache.remove("user", "123");

// 获取或设置(不存在时执行回调并缓存)
User user = cache.getAndSet("user", "123", () -> {
return VAL.of(database.getUser(123), 3600);
});

// 批量操作
Set<String> keys = cache.keys("user", "user_*");
Map<String, Serializable> all = cache.all("user", "user_*");

过期机制

  • seconds > 0:指定秒数后过期
  • seconds = -1:永不过期
  • 后台守护线程定期清理过期缓存

说明

  • 缓存键和值必须实现 Serializable
  • MemoryCache 是线程安全的
  • 适用于单机场景,分布式环境需自行实现 ICache(如 Redis)

← 上一节:BeanUtil | 返回文档导航 | 下一节:工具类速查表 →