首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis Zset定位记录

Redis Zset定位记录
EN

Stack Overflow用户
提问于 2021-03-15 09:59:18
回答 1查看 153关注 0票数 0

为什么redis可以同时根据score和key在log(n)时间的zset中定位一条记录?redis是否真的为zset存储了两个索引?

我想,如果我们有一个跳过列表,它通过记录的键来确定记录,那么我们只能通过这个键来索引。

代码语言:javascript
复制
SkipNode
   key
     k1  #value
     k2  #score


  |------------------------------>   |
  |-...                              |
  |------------->|-------...---------|
skipNode1 -> skipNode2 -> ... skipNodeN

我们只能通过键来定位记录,在最左边,(k1,k2),order,我们如何才能仅通过k2来索引记录呢?

EN

回答 1

Stack Overflow用户

发布于 2021-03-15 10:13:41

为什么redis可以同时根据分数和关键字在log(n)时间内找到zset中的记录?z

按键搜索的时间复杂度为O(1),按分数搜索的时间复杂度为O(log(n))。

真的为一个zset存储两个索引吗?

是的,它有两个索引。关键字的散列索引,以及分数的跳跃列表索引。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66631465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档