Redis常用命令之操作SortedSet(有序集合)
場景
Centos中Redis的下載編譯與安裝(超詳細):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334
Redis的啟動和關閉(前臺啟動和后臺啟動):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348
RedisDesktopManager客戶端可視化工具下載安裝與使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103983147
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
ZADD命令
語法
ZADD key score member [[score member] [score member] ...]
將一個或多個 member 元素及其 score 值加入到有序集 key 當中。
如果某個 member 已經是有序集的成員,那么更新這個 member 的 score 值,并通過重新插入這個 member 元素,來保證該 member 在正確的位置上。
score 值可以是整數值或雙精度浮點數。
如果 key 不存在,則創建一個空的有序集并執行 ZADD 操作。
當 key 存在但不是有序集類型時,返回一個錯誤。
舉例
?
ZRANGE命令
語法
ZRANGE key start stop [WITHSCORES]
返回有序集 key 中,指定區間內的成員。
其中成員的位置按 score 值遞增(從小到大)來排序。
具有相同 score 值的成員按字典序(lexicographical order )來排列。
如果你需要成員按 score 值遞減(從大到小)來排列,請使用 ZREVRANGE 命令。
下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。
你也可以使用負數下標,以 -1 表示最后一個成員, -2 表示倒數第二個成員,以此類推。
超出范圍的下標并不會引起錯誤。
比如說,當 start 的值比有序集的最大下標還要大,或是 start > stop 時, ZRANGE 命令只是簡單地返回一個空列表。
另一方面,假如 stop 參數的值比有序集的最大下標還要大,那么 Redis 將 stop 當作最大下標來處理。
可以通過使用 WITHSCORES 選項,來讓成員和它的 score 值一并返回,返回列表以 value1,score1, ..., valueN,scoreN 的格式表示。
客戶端庫可能會返回一些更復雜的數據類型,比如數組、元組等。
舉例同上圖
ZREM命令
語法
移除有序集 key 中的一個或多個成員,不存在的成員將被忽略。
當 key 存在但不是有序集類型時,返回一個錯誤。
舉例
?
ZSCORE命令
語法
ZSCORE key member
返回有序集 key 中,成員 member 的 score 值。
如果 member 元素不是有序集 key 的成員,或 key 不存在,返回 nil 。
舉例
?
ZREVRANGE命令
語法
ZREVRANGE key start stop [WITHSCORES]
返回有序集 key 中,指定區間內的成員。
其中成員的位置按 score 值遞減(從大到小)來排列。
具有相同 score 值的成員按字典序的逆序(reverse lexicographical order)排列。
除了成員按 score 值遞減的次序排列這一點外, ZREVRANGE 命令的其他方面和 ZRANGE 命令一樣。
?
舉例
?
ZRANK命令
語法
ZRANK key member
返回有序集 key 中成員 member 的排名。其中有序集成員按 score 值遞增(從小到大)順序排列。
排名以 0 為底,也就是說, score 值最小的成員排名為 0 。
使用 ZREVRANK 命令可以獲得成員按 score 值遞減(從大到小)排列的排名。
舉例
?
ZREVRANK命令
語法
ZREVRANK key member
返回有序集 key 中成員 member 的排名。其中有序集成員按 score 值遞減(從大到小)排序。
排名以 0 為底,也就是說, score 值最大的成員排名為 0 。
使用 ZRANK 命令可以獲得成員按 score 值遞增(從小到大)排列的排名。
舉例
?
ZCARD命令
語法
ZCARD key
返回有序集 key 的基數。
即返回集合里所有元素的個數。
舉例
?
ZCOUNT命令
語法
ZCOUNT key min max
返回有序集 key 中, score 值在 min 和 max 之間(默認包括 score 值等于 min 或 max )的成員的數量。
舉例
?
ZINCRBY命令
語法
ZINCRBY key increment member
為有序集 key 的成員 member 的 score 值加上增量 increment 。
可以通過傳遞一個負數值 increment ,讓 score 減去相應的值,比如 ZINCRBY key -5 member ,就是讓 member 的 score 值減去 5 。
當 key 不存在,或 member 不是 key 的成員時, ZINCRBY key increment member 等同于 ZADD key increment member 。
當 key 不是有序集類型時,返回一個錯誤。
score 值可以是整數值或雙精度浮點數。
舉例
?
其他命令參考
http://doc.redisfans.com/sorted_set/index.html
總結
以上是生活随笔為你收集整理的Redis常用命令之操作SortedSet(有序集合)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis常用命令之操作List类型
- 下一篇: Redis常用命令之操作Set(集合)