您好,登錄后才能下訂單哦!
今天小編給大家分享一下Redis有序集合zset知識點有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
redis有序集合zset與普通集合set非常相似,是一個沒有重復元素的字符串集合。
不同之處是有序集合的每個成員都關聯了一個評分(score),這個評分(score)被用來按照從最低分
到最高分的方式排序集合中的成員。
集合的成員是唯一的,但是評分是可以重復的。
因為元素是有序的,所以你可以很快的根據評分(score)或者次序(position)來獲取一個范圍的元
素。
訪問有序集合中的中間元素也是非常快的,因為你能夠使用有序集合作為一個沒有重復成員你的智能列
表。
zadd:添加元素
zrange:score升序,獲取指定索引范圍的元素
返回存儲在有序集合 key 中的指定范圍的元素。 返回的元素可以認為是按score從最低到最
高排列,如果得分相同,將按字典排序。
下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表
示有序集第二個成員,以此類推。
你也可以使用負數下標,以 -1 表示最后一個成員, -2 表示倒數第二個成員,以此類推。
zrange key 0 -1:可以獲取所有元素
withscores:讓成員和它的 score 值一并返回,返回列表以 value1,score1, …, valueN,scoreN 的格式表示
可用版本:
= 1.2.0
時間復雜度:
O(log(N)+M), N 為有序集的基數,而 M 為結果集的基數。
返回值:
指定區間內,帶有 score 值(可選)的有序集成員的列表
zrevrange:score降序,獲取指定索引范圍的元素
返回存儲在有序集合 key 中的指定范圍的元素。 返回的元素可以認為是按score最高到最低
排列, 如果得分相同,將按字典排序。
下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表
示有序集第二個成員,以此類推。
你也可以使用負數下標,以 -1 表示最后一個成員, -2 表示倒數第二個成員,以此類推。
withscores:讓成員和它的 score 值一并返回,返回列表以 value1,score1, …, valueN,scoreN 的格式表示
zrangebyscore:按照score升序,返回指定score范圍內的數據
zincrby:為指定元素的score加上指定的增量
zrem:刪除集合中多個元素
zremrangebyrank:根據索引范圍刪除元素
zremrangebyscore:根據score的范圍刪除元素
zcount:統計指定score范圍內元素的個數
zrank:按照score升序,返回某個元素在集合中的排名
zrevrank:按照score降序,返回某個元素在集合中的排名
zscore:返回集合中指定元素的score
數據結構
SortedSet(zset)是redis提供的一個非常特別的數據結構,內部使用到了2種數據結構。
1、hash表
類似于java中的Map<String,score>,key為集合中的元素,value為元素對應的score,可以用來快速定
位元素定義的score,時間復雜度為O(1)
2、跳表
跳表(skiplist)是一個非常優秀的數據結構,實現簡單,插入、刪除、查找的復雜度均為O(logN)。
類似java中的ConcurrentSkipListSet,根據score的值排序后生成的一個跳表,可以快速按照位置的順
序或者score的順序查詢元素。
以上就是“Redis有序集合zset知識點有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。