91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis中zset的作用是什么

發布時間:2021-08-03 15:19:50 來源:億速云 閱讀:402 作者:Leah 欄目:編程語言

這篇文章給大家介紹redis中zset的作用是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1. zset是什么?  

        在redis官網(https://redis.io/)上,我們可以看到 set, sorted set。其實zset就是sorted set。為了避免sorted set簡寫sset導致命令沖突,所以改為zset。同理例如class-->clazz

        sorted set從字面意思上,很容易就可以理解,是個有序且不可重復的數據集合。類似set和hash的混合體,但是相比于set,zset內部由score進行排序.

2. zset中的score排序規則 

  • 升序排列,分值越大越靠后

  • 分值相同,則按照value的字典順序排序      

3. zset的用法

zset的命令可在這里(http://www.redis.cn/commands.html#sorted_set)看到,有興趣的同學可以直接去看。

ZADD key score1 value1 score2 value2........

即表示增加是的score和value 組,可同時增加多個

 4. zset實現

在redis.conf中,有如下兩個參數:

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

這兩個條件均不滿足,使用 ziplist壓縮表來實現sorted set

滿足這兩個條件之一,sorted set的內部實現會由ziplist轉換為zset

zset-max-ziplist-entries 128,即sorted set中的元素對超過128時(存儲的是score和value的元素對,所以數據項是256),內部實現會由ziplist轉換為zset。

zset-max-ziplist-value 64,即任意一個value的長度超過了64字節,內部實現會由ziplist轉換為zset.

zset由 dict、skiplist實現。

5. ziplist,即壓縮列表

壓縮列表是由連續性內存組成的順序性數據結構,一個壓縮列表可以包含任意多的entry,每個entry可以保存一個字節數組或者一個整數。

redis中zset的作用是什么

壓縮列表在表頭有三個字段:zlbytes,zltail,zllen分別表示列表長度(整個列表占用的字節數),列表尾的偏移量(尾節點距離起始地址的字節數)和列表中entry的個數。

列表表尾還有一個zlend,表示列表結束了。

6. skiplist

由上圖壓縮列表可知,如果我們查找第一個元素或者最后一個元素,直接通過表頭三個字段的長度可定位。復雜度是O(1),而如果查找其他元素,只能順序查找,復雜度是O(n)。 為了解決這個問題,可以使用跳表。

跳表是在鏈表的基礎上,增加了多級索引。如下圖(圖片來源:極客時間),為了提高查詢速度,增加了一級索引。為了再次提高查詢速度,還可以繼續增加二級索引。查找過程就是在多級索引上跳躍,最終定位到元素。  

在新增節點之前,也會先經過查詢,確定插入位置,再完成插入操作,同時也實現了 Sorted Set 的排序。

redis中zset的作用是什么

跳表中新增加節點不會影響其他節點的索引位置。因此插入操作只需要修改插入節點前后的指針,不需要修改所有節點,降低了插入的復雜度,所以跳表在插入性能上明顯優于平衡樹。

 7. zset的使用場景

  • 需要排序的場景,比如top10的熱點文章,或者排行榜

  • 消息的延遲發送,用score存儲發送時間戳,定時任務掃描sorted set,判斷時間進行發送。

關于redis中zset的作用是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鸡泽县| 自治县| 肥东县| 贵南县| 九龙坡区| 灵川县| 锡林郭勒盟| 红桥区| 自治县| 屯留县| 宝兴县| 鄯善县| 齐齐哈尔市| 湘阴县| 绥阳县| 桑日县| 永胜县| 康定县| 广宁县| 双桥区| 龙南县| 云霄县| 舟山市| 梅河口市| 漳平市| 凤台县| 资讯| 高雄县| 仁怀市| 微山县| 酉阳| 澄迈县| 横峰县| 宽甸| 临湘市| 吉木萨尔县| 延长县| 海林市| 永顺县| 桃园县| 包头市|