Redis 有序集合是string类型元素的集合,元素不容许重复。redis
有序集合中的每一个元素都会关联一个数值型的分数。redis正是经过分数来为集合中的成员进行从小到大的排序。spa
有序集合的成员是惟一的(不可重复),但分数(score)能够重复。code
一、zadd key score1 value1 score2 value2 ..... //往有序集合中添加一个或多个元素。score是数值型,支持整数、浮点数,支持负数。z表明sorted set。blog
示例: zadd students 1 zhangsan 2 lisi 3 wangwu //返回这次添加的元素个数。score只是附加信息,真正的元素仍是value1,value2,......排序
说明:hash、list、set、sorted set,在Reids2.4以前的版本中,1次只支持添加一个元素,不支持1次添加多个元素。索引
二、zcard key //返回元素个数element
三、zcount key minScore maxScore //返回分数值在[minScore,maxScore]上的元素个数rem
四、zlexcount key minValue maxValue //返回元素值在[minValue,maxValue]上的元素个数。string
不能直接用元素值,有3种写法:hash
示例:
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]
不能缺省 [ 或 (
五、zrange key minIndex maxIndex [withscores] //返回索引在[minIndex,maxIndex]上的全部元素。
索引从0开始,支持负数,-1表示倒数第一个元素,-2表示倒数第二个元素。
withscores是可选参数,带上则还会显示分数,不带则只显示元素值。
六、zrangebyscore key minScore maxScore [withscores]
返回score在[minScore,maxScore]上的全部元素值。
默认使用[ ,闭区间。也能够显示指定为 [ 或 ( 。
withscores可选,带上时会显示元素的score,不带上时不显示score。
示例: zrangebyscore set1 [1 (2 //获取score在[1,2)上的全部元素
七、zrank key elementValue //返回该元素值的索引。默认按score进行升序排列。索引从0开始。
以上3个命令都是按score升序排列的。下面的3个命令:
前缀加不是z,而是zrev。和以前的3个命令一一对应,用法彻底相同,只不过是按score降序排列计算的。
八、zscore key elementValue //返回该元素值对应的score值
九、zincrby key increment elementValue //increment是增量,将指定元素的score增长increment。increment支持负数,即减。
十、zrem key value1 value2 ..... //移除一个或多个元素
十一、zremrangebyrank key startIndex endIndex //移除下标在[startIndex,endIndex]上的全部元素。zremrangebyrank即z remove range by rank
十二、zremrangebyscore key minScore maxScore //移除score在[minScore,maxScore]上的全部元素
1三、zremrangebylex key value1 value2 //移除这2个元素值之间的全部元素。
不能直接写元素值,能够用- +表示,或者在元素值前面加[ (
1四、zscan key cursor [match pattern] [count num] //迭代
sorted set也提供了计算交集、并集的命令,此处再也不一一介绍。