在java中操作redis删除特定前缀的key

在redis中,没有提供一个根据前缀批量删除key的方法

所以思路应该转换:

  1. 先模糊查询到所有符合条件的keyName
  2. 根据上面的结果,执行批量删除

过程很简单,直接调用本身的方法就可以完成

	/*keys方法 进行模糊匹配*/
  Set keys = RedisUtil.redisTemplate.keys(messageKeyPre + "*");
  /*执行删除*/
  RedisUtil.redisTemplate.delete(keys);

不过值得注意的是:

keys的操作会导致数据库暂时被锁住,其他的请求都会被堵塞;业务量大的时候会出问题

如果存在线程安全问题的话,那需要就参考这篇文章了。
Spring RedisTemplate实现scan操作

你可能感兴趣的:(redis)