在一个天朗气清的日子,小灰登上了线上的redis打算查询数据。然而他只记得前缀而不知道整个键是多少,于是在命令行敲入了“keys xxx*”命令。瞬间服务卡死,报警邮件堆满了邮箱,而小灰,只能目瞪狗呆的等待着即将降临的case study。基本上,keys *命令都是在线上是被运维禁止的。在键很多的情况下,redis可能的卡顿会在秒级以上,导致所有流量都打到数据库,使得数据库雪崩。那我们怎么才能够在查找到目标键呢?在redis2.8.0的时候加入了scan命令,可以分批次扫描redis键。虽然在应用的时候会使得要查询到全部符合要求的key的时间变长,但是大大大大减少了redis卡顿的几率。小灰:咦,那4不是遗漏了吗?

redis中scan命令的基本实现方法

redis中scan命令的基本实现方法

redis中scan命令的基本实现方法

redis中scan命令的基本实现方法

redis中scan命令的基本实现方法

redis中scan命令的基本实现方法