Redis?中ZSET數(shù)據(jù)類型命令使用及對應(yīng)場景總結(jié)(案例詳解)
1.zadd添加元素
zadd key score member
示例:
127.0.0.1:6379> zadd user:visit:rank 60 1001 (integer) 1 127.0.0.1:6379>
2.zrem 從有序集合key中刪除元素
zrem key member
示例:
127.0.0.1:6379> zrem user:visit:rank 1001 (integer) 1 127.0.0.1:6379>
3.zscore 返回有序集合key中元素member的分值
zscore key member
示例
127.0.0.1:6379> zscore user:visit:rank 1001 (nil) 127.0.0.1:6379> zscore user:visit:rank 1002 "60" 127.0.0.1:6379>
4.zincrby 為有序集合key中元素增加分值
zincrby key increment member
為有序集合key中元素member的分值加上increment
示例
127.0.0.1:6379> zscore user:visit:rank 1002 "60" 127.0.0.1:6379> zincrby user:visit:rank 20 1002 "80" 127.0.0.1:6379>
為 1002 用戶增加20分,增加20分之后返回新的分?jǐn)?shù)
應(yīng)用場景:更新排名的依據(jù),如:閱讀量排行榜,每閱讀一次,增加一次閱讀量
5.zcard獲取有序集合key中元素總個數(shù)
zcard key
示例
127.0.0.1:6379> zcard user:visit:rank (integer) 1 127.0.0.1:6379>
應(yīng)用場景:獲取排行集合的元素總個數(shù)
6.zrange 正序獲取分值范圍內(nèi)的元素
zrange key start stop [withscores]
正序獲取有序集合key從start下標(biāo)到stop下標(biāo)的元素;使用withscores 參數(shù)時,返回的集合元素帶有分?jǐn)?shù),不適用withscores的參數(shù)時,直接返回排名
注意:參數(shù)start和stop都是基于零的索引,即0是第一個元素,1是第二個元素,以此類推。
它們也可以是負(fù)數(shù),表示從有序集合的末尾的偏移量,其中-1是有序集合的最后一個元素,-2是倒數(shù)第二個元素,等等。
示例:
127.0.0.1:6379> zrange user:visit:rank 1 10 withscores 1) "1003" 2) "66" 3) "1002" 4) "80" 5) "1005" 6) "96" 127.0.0.1:6379> zrange user:visit:rank 0 10 1) "1004" 2) "1003" 3) "1002" 4) "1005" 127.0.0.1:6379>
應(yīng)用場景:根據(jù)打分的升序排序獲取元素集合
7.zrevrange 倒序獲取集合元素
zrevrange key start stop [withscores]
倒序獲取有序集合key從start下標(biāo)到stop下標(biāo)的元素
注意:參數(shù)start和stop都是基于零的索引,即0是第一個元素,1是第二個元素,以此類推。
它們也可以是負(fù)數(shù),表示從有序集合的末尾的偏移量,其中-1是有序集合的最后一個元素,-2是倒數(shù)第二個元素,等等。
示例:
127.0.0.1:6379> zrevrange user:visit:rank 1 10 1) "1002" 2) "1003" 3) "1004" 127.0.0.1:6379> zrevrange user:visit:rank 1 10 withscores 1) "1002" 2) "80" 3) "1003" 4) "66" 5) "1004" 6) "16" 127.0.0.1:6379>
應(yīng)用場景:獲取榜單數(shù)據(jù)(根據(jù)打分從高到底)
8.zrank獲取有序集合中元素key的排名
zrank key member
示例:
127.0.0.1:6379> zrank user:visit:rank 1002 (integer) 2 127.0.0.1:6379>
應(yīng)用場景:獲取自己的排名
9.zrangebyscore 獲取有序集合中分?jǐn)?shù)區(qū)間的元素
zrangebyscore key min max [ withscores ] [limit offset count]
根據(jù)分?jǐn)?shù)區(qū)間獲取指定數(shù)量的集合,withscores 返回key時同時返回對應(yīng)的分?jǐn)?shù);limit 為分頁標(biāo)識;offset 為分頁的起始位;count 為分頁的數(shù)量
示例:
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 1) "1003" 2) "1002" 127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores 1) "1003" 2) "66" 3) "1002" 4) "80" 127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 0 1 1) "1003" 2) "66" 127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 1 1 1) "1002" 2) "80" 127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 1 2 1) "1002" 2) "80" 127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 0 2 1) "1003" 2) "66" 3) "1002" 4) "80" 127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 2 1 (empty list or set) 127.0.0.1:6379>
應(yīng)用場景:分頁獲取排名元素集合
10.zcount 獲取分值區(qū)間的元素數(shù)量
zcount key min max
示例:
127.0.0.1:6379> zcount user:visit:rank 60 90 (integer) 2 127.0.0.1:6379>
到此這篇關(guān)于Redis 中ZSET數(shù)據(jù)類型命令使用及對應(yīng)場景總結(jié)的文章就介紹到這了,更多相關(guān)Redis 中ZSET數(shù)據(jù)類型命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis遠(yuǎn)程連接Redis客戶端的實現(xiàn)步驟
本文主要介紹了Redis遠(yuǎn)程連接Redis客戶端的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06記錄一次并發(fā)情況下的redis導(dǎo)致服務(wù)假死的問題解決
由于Redis需要依賴于操作系統(tǒng)環(huán)境,如果系統(tǒng)資源受限,比如過量的進(jìn)程在擠占系統(tǒng)資源、系統(tǒng)死鎖等情況,本文主要介紹了記錄一次并發(fā)情況下的redis導(dǎo)致服務(wù)假死的問題解決,感興趣的可以了解一下2023-09-09Go語言操作RediSearch進(jìn)行搜索方法示例詳解
這篇文章主要為大家介紹了Go語言操作RediSearch進(jìn)行搜索方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12