redis scan扫描


1.查询redis 数据库有多少key可以使用 keys 或者scan
 
keys pattern  时间复杂度为O(n),会遍历所有的key, 造成redis服务阻塞, 线上不可接受
 
2.scan curson match pattern count num
一次遍历一个或多个桶,时间较少,不会造成阻塞
缺点:可能遍历结果有重复数据 
 
 
正常情况下,使用scan没问题,如果正在rehash,则会造成重读
比如现在有四个桶,读了0,1,发生rehash时, 0会到4上,1是到5,造成重读,
redis使用高位递增遍历,如下, 当02,遍历完以后0426肯定是遍历完的
但缩容有可能发成key重复
 
 
00  0
10  2
01  1
11  3
 
000 0
100 4
010 2
110 6
001 1
101 7
011 3
111 8


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM