Redis 有序集合是string類型元素的集合,元素不允許重覆。 有序集合中的每個元素都會關聯一個數值型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。 有序集合的成員是唯一的(不可重覆),但分數(score)可以重覆。 1、zadd key score1 value1 scor ...
Redis 有序集合是string類型元素的集合,元素不允許重覆。
有序集合中的每個元素都會關聯一個數值型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
有序集合的成員是唯一的(不可重覆),但分數(score)可以重覆。
1、zadd key score1 value1 score2 value2 ..... //往有序集合中添加一個或多個元素。score是數值型,支持整數、浮點數,支持負數。z代表sorted set。
示例: zadd students 1 zhangsan 2 lisi 3 wangwu //返回此次添加的元素個數。score只是附加信息,真正的元素還是value1,value2,......
說明:hash、list、set、sorted set,在Reids2.4之前的版本中,1次只支持添加一個元素,不支持1次添加多個元素。
2、zcard key //返回元素個數
3、zcount key minScore maxScore //返回分數值在[minScore,maxScore]上的元素個數
4、zlexcount key minValue maxValue //返回元素值在[minValue,maxValue]上的元素個數。
不能直接用元素值,有3種寫法:
- [value 表示包含此元素
- (value 表示不包含此元素
- -表示第一個元素(包含),+表示最後一個元素(包含)
示例:
zadd set1 1 a 2 b 3 c 4 d
zlexcount set1 - + //返回總元素個數,4
zlexcount set1 [a [b //2 。即[a,b]上元素個數
zlexcount set1 (a [b //1。(a,b]
不能預設 [ 或 (
5、zrange key minIndex maxIndex [withscores] //返回索引在[minIndex,maxIndex]上的所有元素。
索引從0開始,支持負數,-1表示倒數第一個元素,-2表示倒數第二個元素。
withscores是可選參數,帶上則還會顯示分數,不帶則只顯示元素值。
6、zrangebyscore key minScore maxScore [withscores]
返回score在[minScore,maxScore]上的所有元素值。
預設使用[ ,閉區間。也可以顯示指定為 [ 或 ( 。
withscores可選,帶上時會顯示元素的score,不帶上時不顯示score。
示例: zrangebyscore set1 [1 (2 //獲取score在[1,2)上的所有元素
7、zrank key elementValue //返回該元素值的索引。預設按score進行升序排列。索引從0開始。
以上3個命令都是按score升序排列的。下麵的3個命令:
- zrevrange
- zrevrangebyscore
- zrevrank
首碼加不是z,而是zrev。和之前的3個命令一一對應,用法完全相同,只不過是按score降序排列計算的。
8、zscore key elementValue //返回該元素值對應的score值
9、zincrby key increment elementValue //increment是增量,將指定元素的score增加increment。increment支持負數,即減。
10、zrem key value1 value2 ..... //移除一個或多個元素
11、zremrangebyrank key startIndex endIndex //移除下標在[startIndex,endIndex]上的所有元素。zremrangebyrank即z remove range by rank
12、zremrangebyscore key minScore maxScore //移除score在[minScore,maxScore]上的所有元素
13、zremrangebylex key value1 value2 //移除這2個元素值之間的所有元素。
不能直接寫元素值,可以用- +表示,或者在元素值前面加[ (
14、zscan key cursor [match pattern] [count num] //迭代
sorted set也提供了計算交集、並集的命令,此處不再一一介紹。