如何访问redis海量数据而不影响redis正常工作?

记住一定不要用如下命令:

  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个

它会返回一个新的游标和相应的结果,然后以这个新游标就可以查询下一批

原文地址:https://www.cnblogs.com/cs99lzzs/p/11010054.html