码上敲享录 > redis数据库常见问题 > redis的scan遍历所有key的用法

redis的scan遍历所有key的用法

上一章章节目录 2020-12-17已有3369人阅读 评论(0)

redis的scan遍历所有key的用法


解决方法:

如果数据量不大可以使用 keys *  来查询所有键,但如果数据量很大就会导致redis服务卡顿阻塞。

所以我建议使用scan命令通过游标分批次来获取,我举例子来说吧。

假如现在我的redis库1有四个键,执行以下命令分批次去获取所有key

scan 0 MATCH * COUNT 2


第一次把游标设置为0,*是匹配所有key,2是每次查询只返回2条数据,在返回的结果中第一行是的数字就是下一次查询的游标

库:1>scan 0 MATCH * COUNT 2

1)  "14"

2)    1)   "\xAC\xED\x00\x05t\x00\x0Cdesigner:450"

 2)   "\xAC\xED\x00\x05t\x00\x0Bcookies:450"


第二次查询其他参数不变,只修改游标值为上一次返回的游标数值14

库:1>scan 14 MATCH * COUNT 2

1)  "3"

2)    1)   "\xAC\xED\x00\x05t\x00\x0BfindOne1163"

 2)   "\xAC\xED\x00\x05t\x00\x0Cdesigner:455"


第三次查询由于我库中只有四个键,前面两次已经便遍历获取完了,所以游标返回0,有重新开始。

库:1>scan 3 MATCH * COUNT 2

1)  "0"

2)  null


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交