redisTemplate 批量删除key]
时间: 2024-01-23 17:04:01 浏览: 169
Redis集群下过期key监听的实现代码
可以使用 Redis 的 delete 方法来删除单个 key,如果需要批量删除多个 key,可以使用 RedisTemplate 的 execute 方法结合 Redis 的 EVAL 命令和 Lua 脚本来实现。以下是一个示例代码:
```
String pattern = "mykeys:*"; // 需要删除的 key 的匹配模式
List<String> keys = redisTemplate.execute(new RedisCallback<List<String>>() {
public List<String> doInRedis(RedisConnection connection) throws DataAccessException {
Cursor<byte[]> cursor = connection.scan(new ScanOptions.ScanOptionsBuilder().match(pattern).build());
List<String> keys = new ArrayList<>();
while (cursor.hasNext()) {
keys.add(new String(cursor.next()));
}
return keys;
}
});
redisTemplate.delete(keys);
```
其中,第一步是使用 Redis 的 SCAN 命令和 Cursor 对象来获取所有匹配的 key,然后将其存储在一个 List 中。第二步是使用 RedisTemplate 的 delete 方法来删除 List 中的所有 key。需要注意的是,该操作会删除所有匹配的 key,所以请谨慎使用。
阅读全文