Redis基本數(shù)據(jù)類型Zset有序集合常用操作
Redis數(shù)據(jù)類型Zset有序集合
有序集合和集合一樣也是 string 類型元素的集合,且不允許重復(fù)的成員。
不同的是有序集合每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè) double 類型的分?jǐn)?shù)。redis 正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。
有序集合的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
集合是通過哈希表實(shí)現(xiàn)的,所以添加、刪除、查找的復(fù)雜度都是 O(1)。
一、zadd
將一個(gè)或多個(gè)成員元素及其分?jǐn)?shù)值加入到有序集當(dāng)中。分?jǐn)?shù)值可以是整數(shù)值或雙精度浮點(diǎn)數(shù)。
若有序集合 key 不存在,則創(chuàng)建一個(gè)空的有序集并執(zhí)行zadd操作。
若 key 存在但不是有序集類型時(shí),返回一個(gè)錯(cuò)誤。
zadd myzset 1 one 1.11 two 3.25 three

二、zrange
返回有序集中,指定區(qū)間內(nèi)的成員。其中成員的位置按分?jǐn)?shù)值遞增(從小到大)來排序。
具有相同分?jǐn)?shù)值的成員按字典序(lexicographical order )來排列。
zrange myzset 0 -1
還可以帶上分?jǐn)?shù)返回:
zrange myzset 0 -1 WITHSCORES

三、zrevrange
返回有序集中,指定區(qū)間內(nèi)的成員。其中成員的位置按分?jǐn)?shù)值遞減(從大到小)來排列。
zrevrange myzset 0 -1 WITHSCORES

四、zrangebyscore
返回有序集合中指定分?jǐn)?shù)區(qū)間的成員列表。有序集成員按分?jǐn)?shù)值遞增(從小到大)次序排列。
zrangebyscore myzset (1 2 # 這里相當(dāng)于 1< score <=2
zrangebyscore myzset 1 2 # 這里相當(dāng)于 1<= score <=2
zrangebyscore myzset -inf +inf # 這里-inf +inf 相當(dāng)于 負(fù)無窮、正無窮,顯示出所有

五、 zrem
移除有序集中的一個(gè)或多個(gè)成員,不存在的成員將被忽略。
zrem myzset one three four

六、zcard
用于計(jì)算集合中元素的數(shù)量。
zcard myzset

七、zcount
用于計(jì)算有序集合中指定分?jǐn)?shù)區(qū)間的成員數(shù)量。
zcount myzset 2 5

還有其他的命令,在使用過程中不清楚可以查看官方文檔中的命令查詢,非常詳盡。
set的使用場景也很豐富,比如可以用來用作排序場景、存儲工資表、班級成績表、xx排行榜等等。
以上就是Redis基本數(shù)據(jù)類型Zset有序集合常用操作的詳細(xì)內(nèi)容,更多關(guān)于Redis數(shù)據(jù)類型Zset有序集合的資料請關(guān)注腳本之家其它相關(guān)文章!
- 基于Redis?zSet實(shí)現(xiàn)滑動(dòng)窗口對短信進(jìn)行防刷限流的問題
- Redis中ZSet的具體使用
- Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列使用小結(jié)
- redis使用zset實(shí)現(xiàn)延時(shí)隊(duì)列的示例代碼
- Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列的項(xiàng)目實(shí)踐
- Redis中的zset類型詳解
- redis中跳表zset的具體使用
- redis延時(shí)隊(duì)列zset實(shí)現(xiàn)的示例
- Redis中Zset類型常用命令的實(shí)現(xiàn)
相關(guān)文章
使用攔截器+Redis實(shí)現(xiàn)接口冪思路詳解
這篇文章主要介紹了使用攔截器+Redis實(shí)現(xiàn)接口冪等,接口冪等有很多種實(shí)現(xiàn)方式,攔截器/AOP+Redis,攔截器/AOP+本地緩存等等,本文講解一下通過攔截器+Redis實(shí)現(xiàn)冪等的方式,需要的朋友可以參考下2023-08-08
淺談Redis?中的過期刪除策略和內(nèi)存淘汰機(jī)制
本文主要介紹了Redis?中的過期刪除策略和內(nèi)存淘汰機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
redis使用zset實(shí)現(xiàn)延時(shí)隊(duì)列的示例代碼
本文主要介紹了redis使用zset實(shí)現(xiàn)延時(shí)隊(duì)列的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
關(guān)于使用IDEA的springboot框架往Redis里寫入數(shù)據(jù)亂碼問題
這篇文章主要介紹了用IDEA的springboot框架往Redis里寫入數(shù)據(jù)亂碼問題,本文給大家分享解決方法通過圖文示例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

