Redis中存取Zset类型
Zset:有序集合
Zset可以认为是一种特殊的set集合,只不过另外用了一个字段来存排序的依据,也可以看做权重,这个字段叫分数score,这个score是float类型。
(1)添加值:zadd key score member [score member …]
返回值:添加成功的成员数,不包括更新的。
key后面可以添加一些参数:[xx|nx] [ch] [incr]
Xx: 只更新已经存在的成员,不添加新成员
Nx: 只添加新成员,不更新已经存在的成员
Ch: 修改返回值,发生变化的成员数。包括添加,更新,值相同的不算更新。
注意:score并不是下标,可以认为是一种排序的依据。
(2)查看有序集合中指定范围的值:zRange key start stop [withScores]
Start和stop支持负数,当超出实际下标范围,不会保错,返回空或者全集合。
按照score升序,如果score相同,则按照存值的字典顺序升序。
如果想按照score降序排,score相同时,按照字典反序排,用zRevRange key start stop [withScores],一般不用。
(3)获取zset中指定分数范围的值:zRangeByScore key min max [withScores] [limit offset count]
注意:min和max默认是闭区间,可以为-inf(负无穷)和+inf(正无穷)。
如果你想min或者max为开区间,需要写个左括号,例如:(1 2这样,1 (2这样,(1 (2这样。
分数score的类型是float,不要以为min和max值为 (1 5 和 0 5 效果一样。
WithScores参数就是返回的时候带上score,显然长度为原数据的2倍。
Limit offset count,从offset下标开始,查出count个范围指定的元素。
(4)删除指定成员:zrem key member [member…]
返回值:返回实际移除的个数,忽略不存在的成员。
(5)获取集合元素的个数:zcard key
(6)获取指定分数内元素的个数:zcount key min max
Zset命令小结:
增:
- Zadd key score member
删:
- Zrem key member [member…]
查:
- zRange key start stop [withScores]
- zRangeByScore key min max [withScores] [limit offset count]
改:无
其他:
- Zcard key
- Zcount key min max