☰
Current Page
Main Menu
Home
Home
Editing
CacheFacade
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
# 缓存门面类 `CacheFacade` 使用说明 `CacheFacade` 是对底层 `RedissonCache` 缓存操作类的封装,提供了统一的缓存操作接口,简化了缓存的读写、集合操作、哈希操作、锁机制等功能的调用。 ## 类路径 ```plain java 复制编辑 package com.sie.snest.engine.facade; ``` --- ## 主要功能 ### 基础缓存操作 | 方法 | 描述 | | --- | --- | | `getObj(String key)` | 获取指定 `key`<br/> 的缓存对象。 | | `getString(String key)` | 获取指定 `key`<br/> 的字符串类型缓存值。 | | `setString(String key, String value, Long expired)` | 设置字符串类型缓存值,支持过期时间(单位:秒)。 | | `setStringIfAbsent(String key, String value, Long expired)` | 若 `key`<br/> 不存在,则设置值并返回 `true`<br/>,否则返回 `false`<br/>。 | | `put(String key, T value, Long expired)` | 通用方式设置缓存对象,并设置过期时间。 | | `remove(String key)` | 删除指定 `key`<br/> 的缓存内容。 | | `expire(String key, Long expired)` | 更新缓存的过期时间。 | | `exists(String key)` | 判断缓存是否存在。 | --- ### 列表操作(List) | 方法 | 描述 | | --- | --- | | `getList(String key)` | 获取缓存中存储的 `List`<br/>。 | | `addList(String key, List value, Long expired)` | 向缓存中添加一个 `List`<br/>。 | | `removeList(String key, List value)` | 从缓存 `List`<br/> 中移除指定元素。 | | `deleteList(String key)` | 删除整个 `List`<br/>。 | --- ### 哈希表操作(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`<br/> 的 key。 | --- ### 分布式锁操作 | 方法 | 描述 | | --- | --- | | `lock(String key)` | 加锁,无超时限制。 | | `lock(String key, Long timeout)` | 加锁,超时时间单位秒。 | | `tryLock(String key, Long waitTime, Long leaseTime)` | 尝试加锁,支持等待时间和持有时间。 | | `unlock(String key)` | 解锁。 | --- ## 典型使用场景 ### 缓存配置数据 ```plain java 复制编辑 String config = CacheFacade.getString("system:config"); if (config == null) { config = loadConfig(); CacheFacade.setString("system:config", config, 3600L); } ``` --- ### 控制接口幂等性 ```plain java 复制编辑 if (!CacheFacade.setStringIfAbsent("request:lock:" + requestId, "1", 10L)) { throw new RuntimeException("重复请求"); } ``` --- ### 分布式锁示例 ```plain java 复制编辑 try { CacheFacade.lock("job:run", 30L); runJob(); } finally { CacheFacade.unlock("job:run"); } ```
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel