keys
keys key*
Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。,当keys数据比较大的时候对服务器是一个隐患:简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的复杂度是 O(n),Redis库中的key越多,查找实现代价越大,产生的阻塞时间越长。
scan
scan [index] match key* count [num]:从index开始的下表查询num条数据
以非阻塞的方式实现key值的查找,绝大多数情况下是可以替代keys命令的,可选性更强
SCAN命令是一个基于游标的迭代器。这意味着命令每次被调用都需要使用上一次这个调用返回的游标作为该次调用的游标参数,以此来延续之前的迭代过程。缺点:遍历可能有重复数据
示例:
查询出CACHE_UC_USER开头的前20条数据
scan 0 match CACHE_UC_USER* count 20