redis删除指定前缀key
无语了家人们,今天写项目想通过通配符删除redis缓存的key,没有用啊
我本来想使用命令 del wang*
去删除前缀是wang的可以,结果不可以啊
含泪封装一个删除指定前缀的key的java类
package com.galaxy.empvue.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Set;
@Component
public class RedisUtils {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void deleteByPrefix(String prefix) {
redisTemplate.execute((RedisCallback<Void>) connection -> {
Set<byte[]> keys = connection.keys((prefix + "*").getBytes());
assert keys != null;
if (!keys.isEmpty()) {
connection.del(keys.toArray(new byte[0][]));
}
return null;
});
}
}
直接自动装配到你要用的类就行了
评论 (0)