2016-11-29 54 views
-1

如果每個值添加到排序集(redis)中的分值爲最高分,那麼每個zadd的時間複雜度是O(log(N))?或者,對於這樣的邊緣情況,redis執行優化(例如,在這種情況下score高於集合中最高的score的例外情況,只需將該值添加到最高點)?zadd的時間複雜度,當值大於目標排序集中的最高分時,zadd的時間複雜度爲

實際上,我問,因爲我在我的應用程序中保留了一個全局排序集,其中值爲zadded,自時代以來的時間爲得分。我想知道這是否仍然是O(log(N)),還是會更快?

回答

0

一旦分揀集增長超過zset-max-ziplist-*配置指令設置的閾值,它將被編碼爲skip list。由於需要維護跳過列表的上限,優化插入此邊緣案例似乎是不可能的。粗略回顧source code表明,如預期的那樣,這不是以任何特殊方式處理的。