redis有序集合數據類型---sortedset


一、概述

  1. redis有序集合和集合一樣,也是string類型元素的集合,且不允許重復的成員。
  2. 不同的是每個元素都會關聯一個double類型的分數。
  3. redis正式通過分數來為集合中的重圓進行從小到大的排序。
  4. 有序集合的成員是唯一的,但分數(score)卻可以重復。
  5. 集合中最大的成員數為2^32-1。

二、sortedset鍵的設置

  • 命令名稱:zadd
  • 語法:zadd key [NX|XX] [CH] [INCR] score member [score member ...]
  • 功能:
    • 將一個或多個member元素及其score值加入到有序集key當中。
    • 如果某個member已經是有序集的成員,那么更新這個member的score值,並通過重新插入這個member元素,來保證該member在正確的位置上。
    • score值可以是整數值或雙精度浮點數。
    • 如果key不存在,則創建一個空的有序集並執行zadd操作。
    • 當key存在但不是有序集類型時,返回一個錯誤。
  • 返回值:
    • 被成功添加的新成員的數量,不包括那些被更新的、已經存在的成員

 

  • 命令名稱:zincrby
  • 語法:zincrby key increment member
  • 功能:
    • 為有序集key的成員member的score值加上增量increment(可負)。
    • 當key不存在,或member不是key的成員時,zincrby等同於zadd
  • 返回值:
    • 當key不是有序集類型時,返回一個錯誤。member成員的新score值,以字符串形式表示。

三、sortedset鍵的查詢

  • 命令名稱:zcard
  • 語法:zcard key
  • 功能:
    • 返回有序集合key的基數(有序集合中元素的數量)
  • 返回值:
    • 當key存在且是有序集類型時,返回有序集的基數。
    • 當key不存在時,返回0

 

  • 命令名稱:zcount
  • 語法:zcount key min max
  • 功能:
    • 返回有序集合key中,score值在min和max之間(默認包括score值等於min或max)的成員的數量。
  • 返回值:
    • score值在min和max之間的成員的數量。

 

  • 命令名稱:zrange
  • 語法:zrange key start stop [withscores]
  • 功能:
    • 返回有序集key中,指定區間內的成員。
    • 其中成員的位置按score值遞增(從小到大)來排序。
  • 返回值:
    • 指定區間內,帶有score值(可選)的有序集成員的額列表。

 

  • 命令名稱:zrangebyscore
  • 語法:zrangebyscore key min max [withscores] [limit offset count]
  • 功能:
    • 返回有序集key中,所有score值介於min和max之間(包括等於min或max)的成員。有序集成員按score值遞增(從小到大)次序排列。
  • 返回值:
    • 指定區間內,帶有score值(可選)的有序集成員的列表。

 

  • 命令名稱:zrank
  • 語法:zrank key member
  • 功能:
    • 返回有序集key中成員member的排名。其中有序集成員按score值遞增(從小到大)順序排列。
    • 排名以0為底,也就是說,score值最小的成員排名為0.
  • 返回值:
    • 如果member是有序集key的成員,返回member的排名。
    • 如果member不是有序集key的成員,返回nil。

 

  • 命令名稱:zrevrange
  • 語法:zrevrange key start stop [withscores]
  • 功能:
    • 返回有序集key中,指定區間內的成員。
    • 其中成員的位置按score值遞減(從大到小)來排列
  • 返回值:
    • 指定區間內,帶有score值(可選)的有序集成員的列表。

 

  • 命令名稱:zrevrangebyscore
  • 語法:zrevrangebyscore key max min [withscores] [limit offset count]
  • 功能:
    • 返回有序集key中,score值介於max和min之間(默認包括等於max或min)的所有成員。有序集成員按score值遞減(從大到小)的次序排列。
  • 返回值:
    • 指定區間內,帶有score值(可選)的有序集成員的列表。

 

  • 命令名稱:zrevrank
  • 語法:zrevrank key member
  • 功能:
    • 返回有序集key中成員member的排名。其中有序集成員按score值遞減順序排列。
    • 排名以0為底,也就是說,score值最小的成員排名為0.
  • 返回值:
    • 如果member是有序集key的成員,返回member的排名。
    • 如果member不是有序集key的成員,返回nil。

 

  • 命令名稱:zscore
  • 語法:zscore key member
  • 功能:
    • 返回有序集key中成員member的score值。
    • 如果member元素不是有序集key的成員,或key不存在,返回nil。
  • 返回值:
    • member成員的score值,以字符串形式表示。

 

  • 命令名稱:zscan
  • 語法:zscan key cursor [match pattern] [count count]
  • 功能:
    • 用於迭代有序集合鍵中的元素。
  • 返回值:
    • 有序集合成員。

 

  • 命令名稱:zrangebylex
  • 語法:zrangebylex key min max [limit offset count]
  • 功能:
    • 當有序集合的所有成員都具有相同的分值時,有序集合的元素會根據成員的字典序來進行排序,而這個命令則可以返回給定的有序集合鍵key中,值介於min和max之間的成員。
  • 返回值:
    • 數組回復:一個列表,列表里面包含了有序集合在指定范圍內的成員

  • 命令名稱:zlexcount
  • 語法:zlexcount key min max
  • 功能:
    • 對於一個所有成員的分值都相同的有序集合鍵key來說,這個命令會返回該集合中,成員介於min和max范圍內的元素數量。
  • 返回值:
    • 整數回復:指定范圍內的元素數量。

四、redis有序集合類型並集和交集處理

  • 命令名稱:zunionstore
  • 語法:zunionstore destination numkeys key [key……] [weights weight [weight……]] [aggregate sum|min|max]
  • 功能:
    • 計算給定的一個或多個有序集的並集,其中給定key的數量必須以numkeys參數指定,並將該並集(結果集)存到destinaton。
    • 默認情況下,結果集中某個成員的score值是所有給定集下該成員score值之和。
  • 返回值:
    • 保存到destination的結果集的基數。

 

  • 命令名稱:zinterstore
  • 語法:zinterstore destination numkeys key [key……] [weights weight [weight……]] [aggregate sum|min|max]
  • 功能:
    • 計算給定的一個或多個有序集的交集,其中給定key的數量必須以numkeys參數指定,並將該並集(結果集)存到destinaton。
    • 默認情況下,結果集中某個成員的score值是所有給定集下該成員score值之和。
  • 返回值:
    • 保存到destination的結果集的基數。

五、刪除

  • 命令名稱:zrem
  • 語法:zrem key member [member……]
  • 功能:
    • 移除有序集key中的一個或多個成員,不存在的成員將被忽略。
    • 當key存在但不是有序集類型時,返回一個錯誤。
  • 返回值:
    • 被成功移除的成員的數量,不包括別忽略的成員。

 

  • 命令名稱:zremrangebyrank
  • 語法:zremrangebyrank key start stop
  • 功能:
    • 移除有序集key中,指定排名(rank)區間內的所有成員。
    • 區間分別以下標參數start和stop指出,包含start和stop在內。
  • 返回值:
    • 被移除成員的數量。

 

  • 命令名稱:zremrangebyscore
  • 語法:zremrangebyscore key min max
  • 功能:
    • 移除有序集key中,所有score值介於min和max之間(包括等於min或max)的成員。
  • 返回值:
    • 被移除成員的數量。

 

  • 命令名稱:zremrangebylex
  • 語法:zremrangebylex key min max
  • 功能:
    • 對於一個所有成員的分值都相同的有序集合鍵key來說,這個命令會移除該集合中,成員介於min和max范圍內的所有元素。
  • 返回值:
    • 被移除成員的數量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM