有序集合(zset)就是可以排序的set,通過每個元素關聯的score值來為元素進行從小到大的排序,zset中元素不能重復,但是score卻可以重復
設定/修改命令
zadd key score member [[score member] [score member] ...]
將一個或多個member元素及其score值加入到key當中
score值可以是整數值或雙精度浮點數
如果某個member已經是有序集合的成員,那么更新這個member的score值
如果key不存在,創建一個空的有序集並執行zadd操作
返回被成功添加的新成員的數量,不包括那些被更新的、已經存在的成員
zincrby key increment member
為key的成員member的score值加上增量increment(可以為負數)
key不存在時創建一個空的有序集並執行zincrby操作
member成員不存在時,創建該成員並設置其score值為0並執行zincrby操作
返回member成員的新score值(字符串形式)
移除命令
zrem key member [member ...]:移除key中一個或多個成員,不存在的成員將被忽略。返回被成功移除的成員數量(不包括被忽略的成員)
zremrangebyrank key start stop:移除key中指定下標區間內(包含start和stop)的所有成員。返回移除成員的數量
zremrangebyscore key min max:
移除key中score值在min和max之間(包括mi和max)的成員
可以給參數min和max前增加"("括號來使結果不包含
返回移除成員的數量
獲取命令
zrange key start stop [withscores]
返回key中指定下標(可以為負數)區間內的成員並按score值遞增(從小到大)來排序的列表
具有相同score值的成員按字典序(lexicographical order)來排列
start大於最大下標或者start>stop,返回空列表
stop大於最大下標將stop當作最大下標來處理
withscores選項讓成員和它的score值一並返回,返回列表以value1,score1, ..., valueN,scoreN的格式表示
zrevrange key start stop [withscores]:返回key中逆序排序(按score值從大到小)后指定下標(可以為負數)區間內的成員列表
zrangebyscore key min max [withscores] [limit offset count]
返回key中score值介於min和max之間(包括min和max)的成員
min和max可以是-inf(無限大)和+inf(無限小),這樣可以在不知道最低和最高score的情況下使用zrangebyscore這類命令
可選的limit參數指定返回結果的數量及區間
withscores選項讓成員和它的score值一並返回
默認情況下,包括score值等於min和max的成員,可以給參數min和max前增加"("括號來使結果不包含,如:
zrangebyscore zset (1 5:返回所有1<score<=5的成員
zrangebyscore zset (5 (10:返回所有5<score<10的成員
返回指定區間內的有序集成員的列表
zrevrangebyscore key min max [withscores] [limit offset count]:返回key中score值介於min和max之間(包括min和max)的成員並把這些成員逆序排序(按score值從大到小)
zscore key member:返回key成員member的score值(字符串形式),如果member元素不是key的成員或key不存在返回nil
交集並集
zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
計算給定的一個或多個有序集的和集(並集)並將該並集(結果集)儲存到destination
numkeys為給定key的數量
weights選項為每個對應的key分別指定一個乘法因子,對應的key所有成員的score值在傳遞給聚合函數(aggregate)之前都要先乘以該因子,默認為1
aggregat選項指定和集(並集)的結果集中score值的聚合方式
默認為sum,將所有集合中某個相同成員的score值之和作為結果集中該成員的score值;
min將所有集合中某個相同成員中最小的score值作為結果集中該成員的score值;
max將所有集合中某個相同成員最大的score值作為結果集中該成員的score值
返回保存到 destination 的結果集的基數。
zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
計算給定的一個或多個有序集的交集並將該交集(結果集)儲存到destination
參數的用法和zunionstore相同
其他命令
zcard key:返回key的基數,key不存在時返回0
zcount key min max:返回key中score值在min和max之間(包括min和max)的成員的數量
zrank key member:返回key中成員member的排名(從0開始),如果member不是key的成員返回nil
zrevrank key member:返回key中成員member逆序排序(按score值從大到小)后的排名(從0開始)
