Skip to content

Commit

Permalink
📝 redis 组件添加批量清除缓存文档,修正文档缓存示例中@cached ttl属性示例类型中使用错误的问题,long类型的ttl不需要双引号
Browse files Browse the repository at this point in the history
  • Loading branch information
lishangbu committed Jun 5, 2024
1 parent 67d9609 commit d956c78
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion docs/guide/feature/redis.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ keyJoint 的值为 [SPEL 表达式](https://docs.spring.io/spring-framework/docs
注解示例:

```java
@Cached(key = "testKey", keyJoint = "#p0", ttl="86400")
@Cached(key = "testKey", keyJoint = "#p0", ttl=86400)
public User getUser(String userName) {
return new User("zhangsan", 18);
}
Expand Down Expand Up @@ -228,6 +228,14 @@ public @interface CacheDel {
* @return boolean
*/
boolean multiDel() default false;


/**
* 是否删除缓存空间key下的所有条目
* 默认情况下,只删除相关键下的值。
* 注意,设置该参数为true时,指定的 keyJoint与multiDel将被忽略.
*/
boolean allEntries() default false;
}
```

Expand Down Expand Up @@ -257,6 +265,17 @@ public User updateUserStatus(List<String> usernameList, String status) {
}
```

有的时候我们需要一下清除Cache中所有的元素,因此类似于Spring Cache项目的@CacheEvict,```@CacheDel```同样提供了```allEntries```属性。```allEntries```是boolean类型,表示是否需要清除缓存中的所有元素。默认为false,表示不需要。当指定了```allEntries```为true时,将忽略指定的keyJoint表达式,通过redis scan删除```@CacheDel``````key```属性能命中的所有相关的缓存。

清除缓存示例:

```java
@CacheDel(key = "testKey", allEntries = true)
public User removeUser(String username) {
return mapper.removeUser(username);
}
```

进阶玩法,集合投影,可以对集合的元素操作,获取新的集合数据,类似于 stream 的 map 方法:

```java
Expand Down

0 comments on commit d956c78

Please sign in to comment.