Data structures rediszset定位记录
为什么redis可以在日志(n)时间内按分数和键在zset中找到记录?redis是否为zset存储了两个索引 我想如果我们有一个skiplist,它通过键来确定记录,那么我们只能通过这个键来索引Data structures rediszset定位记录,data-structures,redis,skip-lists,zset,Data Structures,Redis,Skip Lists,Zset,为什么redis可以在日志(n)时间内按分数和键在zset中找到记录?redis是否为zset存储了两个索引 我想如果我们有一个skiplist,它通过键来确定记录,那么我们只能通过这个键来索引 SkipNode key k1 #value k2 #score |------------------------------> | |-... | |------------->|
SkipNode
key
k1 #value
k2 #score
|------------------------------> |
|-... |
|------------->|-------...---------|
skipNode1 -> skipNode2 -> ... skipNodeN
我们只能按键定位记录,在最左边的(k1,k2),顺序,我们如何仅按k2索引记录
为什么redis可以在日志(n)时间中通过分数和键在zset中找到记录?Z
按键搜索的时间复杂度为O(1),按分数搜索的时间复杂度为O(log(n))
redis是否为zset存储了两个索引
是的,它有两个索引。键的哈希索引和分数的跳过列表索引
为什么redis可以在日志(n)时间中通过分数和键在zset中找到记录?Z
按键搜索的时间复杂度为O(1),按分数搜索的时间复杂度为O(log(n))
redis是否为zset存储了两个索引
是的,它有两个索引。键的哈希索引和分数的跳过列表索引。谢谢,这很有意义:-)谢谢,这很有意义:-)