Redis 有序集合操作

2018-08-03 11:03 更新

Sorted Set的實(shí)現(xiàn)是hash table(element->score, 用于實(shí)現(xiàn)ZScore及判斷element是否在集合內(nèi)),和skip list(score->element,按score排序)的混合體。 skip list有點(diǎn)像平衡二叉樹(shù)那樣,不同范圍的score被分成一層一層,每層是一個(gè)按score排序的鏈表。

ZAdd/ZRem是O(log(N)),ZRangeByScore/ZRemRangeByScore是O(log(N)+M),N是Set大小,M是結(jié)果/操作元素的個(gè)數(shù)??梢?jiàn),原本可能很大的N被很關(guān)鍵的Log了一下,1000萬(wàn)大小的Set,復(fù)雜度也只是幾十不到。當(dāng)然,如果一次命中很多元素M很大那誰(shuí)也沒(méi)辦法了。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)