Redis資料結構04 SortedSet

2022-09-10 20:09:18 字數 1361 閱讀 7162

sorted-sets和sets型別極為相似,它們都是字串的集合,都不允許重複的成員出 現在乙個set中。它們之間的主要差別是sorted-sets中的每乙個成員都會有乙個分 數(score)與之關聯,redis正是通過分數來為集合中的成員進行從小到大的排序。然 而需要額外指出的是,儘管sorted-sets中的成員必須是唯一的,但是分數(score) 卻是可以重複的。

在sorted-set中新增、刪除或更新乙個成員都是非常快速的操作,其時間複雜度為 集合中成員數量的對數。由於sorted-sets中的成員在集合中的位置是有序的,因此, 即便是訪問位於集合中部的成員也仍然是非常高效的。事實上,redis所具有的這一 特徵在很多其它型別的資料庫中是很難實現的,換句話說,在該點上要想達到和redis 同樣的高效,在其它資料庫中進行建模是非常困難的。

例如:遊戲排名、微博熱點話題等使用場景。

1 )zadd key score member score2 member2 ...:將所有成員以及該成員的分數儲存到sorted--set中

2)zcard key:獲取集合中的成員數量

獲得元素

3.zscore key member:返回指定成員的分數

4)zcard key:獲取集合中的成員數量

刪除元素

5)zrem key member[member...]:移除集合中指定的成員,可以指定多個成員

範圍查詢

6)zrange key start end [withscores]:獲取集合中腳標為start-end的成員,[withscores]引數表明返回的成員包含及其分數

7)zrevrange   key start stop[withscores]:照元素分數從大到小的從順序返回索引  從start到stop之間的所有元素(包含兩端的元素)

8)zremrange key start stop:按照排名範圍刪除元素

9)zremrangebyscore key min max:按照分數範圍刪除元素

擴充套件,limit

1)zrangebyscore key min max[withscores] [limit offset count]:返回分數在【min,max】的成員並按照分數從高到低排序,[withscores]:顯示分數;[limit offset count]:offset,表明從腳標為offset的元素開始並返回count個成員

2)zincrby key increment member:設定指定成員的增加的分數,返回值是更改後的分數

3)zcount key min max:獲取分數在[min,max]之間的成員

4)zrank key member:返回成員在集合的排名.(從小到大)

5)zrevrank key member:返回成員在集合中的排名:(從大到小)

資料結構04

複習 1 什麼是資料結構 是專門研究資料關係和操作的學科,而非是計算方法。資料結構 演算法 程式 2 邏輯結構和物理結構 邏輯結構 集合 除了同屬於乙個集合,資料之間沒有任何關係。表 資料之間存在一對一關係。樹 資料之間存在一對多關係。圖 資料之間存在多對多關係。物理結構 順序結構 資料存在在連續的...

Redis04之常用資料結構set zset

上次我們介紹了list的常用命令,部落格鏈結為這次我們介紹set和zset的常用命令。set是string型別的無序集合,集合成員資料是唯一的。首先我們新增s1,並查詢s1的元素,如下圖所示。scard用於獲取key的長度,sismember用於判斷某元素是否在在集合內,如下圖所示。srandmem...

資料結構 佇列04

佇列是限制在兩端進行插入操作和刪除操作的線性表,允許進行存入操作的一端稱為 隊尾 允許進行刪除操作的一端稱為 隊頭 當線性表中沒有元素時,稱為 空隊 特點 先進先出 fifo 佇列的特徵 特殊的線性表,先進先出 fifo 1 資料 對於非空的佇列,表頭沒有直接前驅,表尾沒有直接後繼,其它有且僅有乙個...