1. 首页
  2. 编程语言
  3. Java
  4. 在RedisTemplate中使用scan代替keys指令操作

在RedisTemplate中使用scan代替keys指令操作

上传者: 2021-08-01 11:11:00上传 PDF文件 114.36 KB 热度 17次

keys * 这个命令千万别在生产环境乱用。特别是数据庞大的情况下。因为Keys会引发Redis锁,并且增加Redis的CPU占用。很多公司的运维都是禁止了这个命令的当需要扫描key,匹配出自己需要的key时,可以使用 scan 命令但是会有一个问题:没法移动cursor,也只能scan一次,并且容易导致redis链接报错keys的操作会导致数据库暂时被锁住,其他的请求都会被堵塞;业务量大的时候会出问题Spring RedisTemplate实现scan例子中的"field"是值redis的key,即从key为"field"中的hash中查找redisTemplate的opsForHash,opsForSet,opsForZSet 可以 分别对应 sscan、hscan、zscan当然这个网上的例子其实也不对,因为没有拿着cursor遍历,只scan查了一次可以偷懒使用 .count,一下子全查回来;但是这样子和 keys 有啥区别呢?

用户评论