CacheFacade 是对底层 RedissonCache 缓存操作类的封装,提供了统一的缓存操作接口,简化了缓存的读写、集合操作、哈希操作、锁机制等功能的调用。

类路径

java


复制编辑
package com.sie.snest.engine.facade;

主要功能

基础缓存操作

| 方法 | 描述 | | — | — | | getObj(String key) | 获取指定 key
的缓存对象。 | | getString(String key) | 获取指定 key
的字符串类型缓存值。 | | setString(String key, String value, Long expired) | 设置字符串类型缓存值,支持过期时间(单位:秒)。 | | setStringIfAbsent(String key, String value, Long expired) | 若 key
不存在,则设置值并返回 true
,否则返回 false
。 | | put(String key, T value, Long expired) | 通用方式设置缓存对象,并设置过期时间。 | | remove(String key) | 删除指定 key
的缓存内容。 | | expire(String key, Long expired) | 更新缓存的过期时间。 | | exists(String key) | 判断缓存是否存在。 |


列表操作(List)

| 方法 | 描述 | | — | — | | getList(String key) | 获取缓存中存储的 List
。 | | addList(String key, List value, Long expired) | 向缓存中添加一个 List
。 | | removeList(String key, List value) | 从缓存 List
中移除指定元素。 | | deleteList(String key) | 删除整个 List
。 |


哈希表操作(Hash)

| 方法 | 描述 | | — | — | | hGet(String key, String field) | 获取哈希表中指定字段的值。 | | hMGet(String key, Set<String> field) | 获取哈希表中多个字段的值。 | | hGetAll(String key) | 获取整个哈希表的字段和值。 | | hSet(String key, String field, String value, Long expired) | 设置哈希表中指定字段的值。 | | hSetAll(String key, Map<String, String> value, Long expired) | 设置哈希表多个字段值。 | | hSetIfAbsent(String key, String field, String value, Long expired) | 字段不存在时设置值。 | | hDel(String key, String field) | 删除哈希表中指定字段。 | | hDelKeys(String key, String[] fields) | 删除哈希表中多个字段。 | | hLen(String key) | 获取哈希表的字段数量。 | | hKeys(String key) | 获取所有字段名。 |


集合操作(Set)

| 方法 | 描述 | | — | — | | sExists(String key) | 判断集合是否存在。 | | sIsMember(String key, String field) | 判断元素是否是集合成员。 | | sAdd(String key, String field, Long expired) | 向集合中添加一个元素。 | | sAddAll(String key, Collection<String> field, Long expired) | 添加多个元素。 | | sRemove(String key, String field) | 移除集合中指定元素。 | | sCard(String key) | 获取集合中元素数量。 | | sMembers(String key) | 获取集合中所有成员。 |


模糊删除与扫描

| 方法 | 描述 | | — | — | | scanKeys(String key) | 扫描匹配的 key 集合。 | | deleteByPattern(String key) | 删除所有匹配 pattern
的 key。 |


分布式锁操作

| 方法 | 描述 | | — | — | | lock(String key) | 加锁,无超时限制。 | | lock(String key, Long timeout) | 加锁,超时时间单位秒。 | | tryLock(String key, Long waitTime, Long leaseTime) | 尝试加锁,支持等待时间和持有时间。 | | unlock(String key) | 解锁。 |


典型使用场景

缓存配置数据

java


复制编辑
String config = CacheFacade.getString("system:config");
if (config == null) {
    config = loadConfig();
    CacheFacade.setString("system:config", config, 3600L);
}

控制接口幂等性

java


复制编辑
if (!CacheFacade.setStringIfAbsent("request:lock:" + requestId, "1", 10L)) {
    throw new RuntimeException("重复请求");
}

分布式锁示例

java


复制编辑
try {
    CacheFacade.lock("job:run", 30L);
    runJob();
} finally {
    CacheFacade.unlock("job:run");
}