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的使用場(chǎng)景也很豐富,比如可以用來用作排序場(chǎng)景、存儲(chǔ)工資表、班級(jí)成績(jī)表、xx排行榜等等。
以上就是Redis基本數(shù)據(jù)類型Zset有序集合常用操作的詳細(xì)內(nèi)容,更多關(guān)于Redis數(shù)據(jù)類型Zset有序集合的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 基于Redis?zSet實(shí)現(xiàn)滑動(dòng)窗口對(duì)短信進(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官方ORM框架比RedisTemplate更優(yōu)雅
這篇文章主要為大家介紹了Redis官方ORM框架比RedisTemplate更優(yōu)雅的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07銀河麒麟V10sp1服務(wù)器系統(tǒng)安裝redis不能使用的快速解決辦法
這篇文章主要介紹了銀河麒麟V10sp1服務(wù)器系統(tǒng)安裝redis不能使用的快速解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01利用redis lua腳本實(shí)現(xiàn)時(shí)間窗分布式限流
Lua是一種輕量小巧的腳本語言,Redis是高性能的key-value內(nèi)存數(shù)據(jù)庫(kù),在部分場(chǎng)景下,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的良好補(bǔ)充,本文給大家介紹了如何利用redis lua腳本實(shí)現(xiàn)時(shí)間窗分布式限流,需要的朋友可以參考下2024-03-03深入解析RedisJSON之如何在Redis中直接處理JSON數(shù)據(jù)
JSON已經(jīng)成為現(xiàn)代應(yīng)用程序之間數(shù)據(jù)傳輸?shù)耐ㄓ酶袷?然而,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在處理JSON數(shù)據(jù)時(shí)可能會(huì)遇到性能瓶頸,本文將詳細(xì)介紹RedisJSON的工作原理、關(guān)鍵操作、性能優(yōu)勢(shì)以及使用場(chǎng)景,感興趣的朋友一起看看吧2024-05-05Linux、Windows下Redis的安裝即Redis的基本使用詳解
Redis是一個(gè)基于內(nèi)存的key-value結(jié)構(gòu)數(shù)據(jù)庫(kù),Redis 是互聯(lián)網(wǎng)技術(shù)領(lǐng)域使用最為廣泛的存儲(chǔ)中間件,這篇文章主要介紹了Linux、Windows下Redis的安裝即Redis的基本使用詳解,需要的朋友可以參考下2022-09-09詳解redis數(shù)據(jù)結(jié)構(gòu)之sds
sds是Simple Dynamic String的縮寫,譯為簡(jiǎn)單動(dòng)態(tài)字符串,redis使用該結(jié)構(gòu)保存字符串,不同于c中的字符串,redis使用該結(jié)構(gòu)來更方便的進(jìn)行字符串的處理,需要的朋友可以參考下2017-05-05使用redis實(shí)現(xiàn)延遲通知功能(Redis過期鍵通知)
這篇文章主要介紹了使用redis實(shí)現(xiàn)延遲通知功能(Redis過期鍵通知)的相關(guān)知識(shí),本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09