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");
}