关于redis scan 游标的问题
来源:4-3 从海量数据里查询某一固定前缀的key
坐看落花
2020-04-27
- key的存储应该是hash 这种方式, 才能使得get key的时间复杂度为O(1), 那 游标表示什么意思呢, 是key在hashMap中位置吗?
- 为什么返回的游标会比上次小呢, 依次向后的话应该是递增的, 如果返回游标可能比输入游标小的话, 那返回游标为0也可能还能继续轮询. 还是说0只是一种结束标识
写回答
1回答
-
同学好,
redis底层使用得是hashmap这种结构(数组(bucket)+链表),所以游标的意思是数组里面即buket的位置;
它是这样去访问的,同学可以转换成二进制,类似这样子
00->10->01->11
主要做主要是为了尽可能避免hashmap扩容的时候的重复遍历。0是一种结束标识
012020-04-28
相似问题