概述
今天看菜鸟教程对scan的描述
里面写到,count默认值为10。但是下面的示例中,第一次扫描却返回了11个元素。
这是为什么呢?
在看过官方的文档之后,发现描述中有一点。the server will usually return count or a bit more than count....
服务有可能返回比count多一点的元素。
这是因为,在源码中对全局哈希表的每个哈希槽进行遍历,一旦发现拿到的元素个数大于了count,就停止遍历。当一个桶里有多个元素,这时,返回的元素就有可能多于count一点了。
总结:
如果是对于集合类型的scan(hscan,sscan...),如果集合元素非常少,导致其底层数据结构为整数数组或压缩列表,那么不管count设置为多少,都会返回全部元素。
其他情况下,scan可能返回少于count个元素(只剩下少于count个数的元素了),可能返回等于count个元素,也可能返回比count多一点的元素。
就像官方文档说的那样,count参数just a hint,只是一个提示作用的参数。
最后
以上就是哭泣未来为你收集整理的redis scan命令的count参数的全部内容,希望文章能够帮你解决redis scan命令的count参数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复