Java 中如何批量删除 Redis 的数据?超详细,无套路

2022-11-30 21:32:13 浏览数 (1)

这里我使用的是RedisTemplate模板

1、pom.xml依赖如下:

代码语言:javascript复制
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

以下工具类方法中会用到模板依赖:

代码语言:javascript复制
@Autowired
private RedisTemplate<String, ?> redisTemplate;

2、模糊删除,比如:Redis的key前缀为 t*,则会删除库中key 为 t 开头的所有数据。

代码语言:javascript复制
public Long delByPrefix(final String prefixKey){
		Set<String> keys = redisTemplate.keys(prefixKey);
		if(!CollectionUtils.isEmpty(keys)) {
			return redisTemplate.delete(keys);
		}
		return null;
    }

 3、模糊查询,跟模糊删除类似,传入要查询的key前缀即可

代码语言:javascript复制
//模糊删除根据前缀key
	public java.util.List<Map<String, Object>> queryByPrefix(final String prefixKey){
		Set<String> keys = redisTemplate.keys(prefixKey);
		java.util.List<Map<String,Object>> resultList=new ArrayList<Map<String,Object>>();
		if(!CollectionUtils.isEmpty(keys)) {
			for (String key : keys) {
				Map<String, Object> map = new HashMap<String, Object>();
				map.put(key, get(key));
				resultList.add(map);
			}
		}
		return resultList;
    }

 4、结语:如果需要精确查询或者删除,即可传入完整的 key 名。上面两个方法还支持命名空间的key批量删除。

附件:完整代码资源(弱弱的说一句,我设置的付费下载,但是也不多,如果实在囊中羞涩的可以私信我,我也可以免费提供)。

Java语言在springboot项目中针对Redis数据库的各种操作工具类-Java文档类资源-CSDN下载

0 人点赞