簡體   English   中英

Redis Zset 定位記錄

[英]Redis Zset Locate record

為什么 redis 可以通過分數和鍵在 log(n) 時間內定位 zset 中的記錄? redis 實際上是否為 zset 存儲了兩個索引?

我想如果我們有一個通過其鍵確定記錄的跳過列表,我們只能按此鍵進行索引。

SkipNode
   key
     k1  #value
     k2  #score


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

我們只能通過鍵定位記錄,在最左邊,(k1,k2),順序,我們如何只通過k2索引記錄?

為什么 redis 可以在 log(n) 時間內通過 score 和 key 定位 zset 中的記錄?

key 搜索的時間復雜度是 O(1),score 是 O(log(n))。

redis 實際上是否為 zset 存儲了兩個索引?

是的,它有兩個索引。 鍵的 hash 索引和分數的跳過列表索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM