可以使用正则查找匹配的结果.时间复杂度是O(N),N为redis中所有key的总数量.
该命令有致命的缺点:
a. 没有limit,只能一次性获取所有符合条件的key.如果数据量很大的话,就会产生无穷无尽的输出.
b. keys命令是遍历算法,遍历全部的key,时间复杂度是O(N).redis是单线程的,如果keys查询的时间过长,redis的其它操作会被阻塞较长时间,造成redis较长时间的卡顿.要避免在生产环境使用该命令.
命令格式:keys pattern
命令格式:scan cursor match pattern count num
cursor = 0时表示开始查询,第一次查询.每次查询结果中都会返回一个cursor,作为下次查询的开始游标.当某次查询返回的cursor=0时,表示已全部查询完毕.
count值设置为多少合适呢?
其实设置多少都可以,scan就是迭代查询,多次迭代总可以遍历完.但是如果设置的太大,超过总的key的数量,就相当于一次全部查询出来啦,同keys没啥区别啦.
localhost:6379> scan 0 match user_info:* count 10000 1) "6630" 2) 1) "user_info:web:82" 2) "user_info:web:2020" 3) "user_info:2014" 4) "user_info:web:1747" 5) "user_info:3703" 6) "user_info:1777" 7) "user_info:142" localhost:6379> scan 6630 match user_info:* count 10000 1) "651" 2) 1) "user_info:1922" 2) "user_info:web:1922" 3) "user_info:web:1777" 4) "user_info:web:142" 5) "user_info:web:1921" 6) "user_info:web:2024" 7) "user_info:web:1676" 8) "user_info:2020" 9) "user_info:web:2023" 10) "user_info:1774" localhost:6379> scan 651 match user_info:* count 10000 1) "0" 2) 1) "user_info:web:2037" 2) "user_info:web:344"
以上就是土嘎嘎小编为大家整理的redis的keys命令与scan命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!