原文鏈接:http://doc.redisfans.com/sorted_set/index.html
SortedSet的數據結構類似於Set,不同的是Sorted中的每個成員都分配了一個值(Score)用於對其中的成員進行排序(升序)。
zadd key score member[[score member] ..]
將一個或多個member及其socre加入到set中,socre須是float類型;例:zadd zsk 1 m1 2 m2 3 m3 0 m4在集合中是[m4 0][m3 3][m2 2][m1 1]這樣的順序。
zcard key
返回有序集合中元素的個數,若key不存在返回0;例:zcard zsk。
zcount key min max
返回score值在min和max之間的元素個數(score和min之間是>=和max是<=),若min>max返回0,若min或max不為float類型返回error;例:zcount zsk 1 4。
zincrby key increment member
為集合成員member的score增加增量increment並返回新的score值,increment可以為負數但必須是float類型否則會返回error,若key不存在則會先新增member成員后再執行操作;例:zincrby zsk -1.1 m1。
zrange key start stop[withscores]
按索引返回key的成員區間,start和stop是有序集合的索引下標(從0開始),若stop<start返回空,若start或stop為負數表示從后開始如-1表示倒數第一個元素,withscores表示是否顯示score,若不選此參數則返回結果中不會返回score;例:zrange zsk 0 2 withscores返回:
1) m5
2) 0.5
3) m1
4) 1
5) m4
6) 1
zrangebyscore key min max [withscores][limit offset count]
返回有序集合中score介於min和max之間的元素(若不想包含=請用如 zrangebyscore zsk (1 (4表示),litmit的功能類似於分頁,例:zrangebyscore zsk 0 1 withscores limit 0 2返回:
1) m5
2) 0.5
3) m1
4) 1
當然如果你不知道min和max的值可以使用-inf和+inf來替代。
zrank key member
返回有序集合中member的排名,排名以0為底;例:zrank zsk m4。
zrem key member[member...]
移除有序集合中的一個或多個元素,若member不存在則忽略;例:zrem zsk m5 m1。
zremrangebyrank key start stop
刪除指定區間中的元素,start和stop的計數從0開始,start的位置須小於stop,start和stop也可為負數表示從后記位如-1表示倒數第一個元素;例:zremrangebyrank zsk 0 -3。
zremrangebyscore key min max
刪除score值在min和max之間的元素(若不想包含=請用如 zremrangebyscore zsk (1 (4表示);例:zremrangebyscore zsk 1 2。
zrevrange key start stop[withscores]
和zrange類似,不過zrevrange的元素時倒序排列的:zrevrange zsk 0 5 withscores。
zrevrangebyscore key max min [withscores] [limit offset count]
和zrangebyscore類似,只不過返回結果是按倒序排列(這里需要注意一下max和min的書序),例:zrevrangebyscore zsk 6 2 withscores limit 1 2。
zrevrank key member
和zrank類似,不過數據返回的順序為倒序,順序以0位底,也就是說最大的排名為0,例:zrevrank zsk m6。
zscore key member
返回成員member的score值,若key不存在返回nil;例:zscore zsk m3。
zunionstore destination numkeys key [key ...] [weights [weight ...]] [aggregate sum|min|max]
吐槽一句這個命令真心長,不過並不難理解,這個是返回一個或多個集合的並集並將結果存儲到destination中去,若destination已存在此元素則score的值會被覆蓋:
numkeys用於指定key的數量,若key的數目和numkeys不一致會返回錯誤,score為元素的score之和,也就是說若sk1和sk2中都有m4,一個score為1另外一個為2,那么合並的新集合中score為3;
weights為每個有序集合的乘法因子,也就是說sk1中和sk2中都有m4,score分別為1和2,乘法因子設置為1和2,那么最終的score為1*1+2*2,weights默認為1一旦顯示指定weights那么weight的數目必須與key的數目相同否則會返回error;
aggregate可以指定結果集的聚合方式,默認使用sum將某個成員之和作為score值,使用min使用最小的,使用max使用最大的,如sk1和sk2中m4的score分別為1和2,那么使用sum最終的socre就為3,使用max最終的socre就為2,使用min最總的score就為1,aggregate的會先計算weight再做比較。
例:zunionstore zsk2 2 zsk zsk1 weights 1 4 aggregate max。
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
取交集並存入destination,不想再細說了看zunionstore吧,例:zinterstore zsk2 2 zsk zsk1 weights 1 4 aggregate max。
zscan key cursor[match pattern][count count]
增量迭代有序集合,參見scan,例:zscan sk 0 match *5 count 1。