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