redisTemplate 删除带有前缀的key
时间: 2024-05-01 19:23:01 浏览: 9
可以通过 RedisTemplate 的 execute 方法,使用 Redis 原生的命令来删除带有前缀的 key。
示例代码:
```java
String prefix = "prefix:";
String pattern = prefix + "*";
redisTemplate.execute((RedisCallback<Void>) connection -> {
Set<byte[]> keys = connection.keys(pattern.getBytes());
if (!keys.isEmpty()) {
byte[][] keyArray = new byte[keys.size()][];
int i = 0;
for (byte[] key : keys) {
keyArray[i++] = key;
}
connection.del(keyArray);
}
return null;
});
```
首先定义了一个前缀 `prefix:`,然后根据该前缀构造了通配符模式 `pattern`,用于匹配所有满足前缀条件的 key。
然后使用 execute 方法执行 RedisCallback,在其中使用 RedisConnection 的 keys 方法查询所有匹配的 key,并使用 del 方法删除这些 key。注意,keys 方法返回的是 byte[] 类型的 key,需要转换成 byte[][] 类型的数组才能作为 del 方法的参数传入。