记住一定不要用如下命令:
keys user*
keys算法是遍历算法,复杂度是O(n),也就是数据越多,时间越高。
如果以user为前缀的key数据量达到几百万,keys这个指令就会导致 Redis 服务卡顿,因为 Redis 是单线程程序,顺序执行所有指令,其它指令必须等到当前的 keys 指令执行完了才可以继续。
正确的命令应该是用: scan
格式为:SCAN cursor [MATCH pattern] [COUNT count]
举例:scan 0 match user* count 4
它的意思是从游标为0开始查询user为前缀的key, 每次返回4个
它会返回一个新的游标和相应的结果,然后以这个新游标就可以查询下一批