Redis基本數(shù)據(jù)類(lèi)型Zset有序集合常用操作
Redis數(shù)據(jù)類(lèi)型Zset有序集合
有序集合和集合一樣也是 string 類(lèi)型元素的集合,且不允許重復(fù)的成員。
不同的是有序集合每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè) double 類(lèi)型的分?jǐn)?shù)。redis 正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序。
有序集合的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
集合是通過(guò)哈希表實(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 存在但不是有序集類(lèi)型時(shí),返回一個(gè)錯(cuò)誤。
zadd myzset 1 one 1.11 two 3.25 three

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

三、zrevrange
返回有序集中,指定區(qū)間內(nèi)的成員。其中成員的位置按分?jǐn)?shù)值遞減(從大到小)來(lái)排列。
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ù)無(wú)窮、正無(wú)窮,顯示出所有

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

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

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

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

