我是靠谱客的博主 哭泣未来,最近开发中收集的这篇文章主要介绍redis scan命令的count参数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天看菜鸟教程对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参数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部