Redis之Sorted Sets
1、ZADD
ZADD key score member [score member ...]
- 将所有指定成员添加到键为key有序集合(sorted set)里面。 添加时可以指定多个分数/成员(score/member)对。如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置。
- 如果key不存在,将会创建一个新的有序集合(sorted set)并将分数/成员(score/member)对添加到有序集合,就像原来存在一个空的有序集合一样。如果key存在,但是类型不是有序集合,将会返回一个错误应答。
- 分数值是一个双精度的浮点型数字字符串。+inf和-inf都是有效值。
例子
127.0.0.1:6379> zadd key1 1 zhangsan (integer) 1 127.0.0.1:6379> zadd key1 2 lisi (integer) 1 127.0.0.1:6379> zadd key1 3 wangwu (integer) 1 127.0.0.1:6379> zadd key1 4 zhouliu (integer) 1 127.0.0.1:6379> zrange key1 0 -1 1) "zhangsan" 2) "lisi" 3) "wangwu" 4) "zhouliu" 127.0.0.1:6379>
2、ZCARD
ZCARD keykey存在的时候,返回有序集的元素个数,否则返回0
例子
127.0.0.1:6379> zadd key1 1 zhngsan (integer) 1 127.0.0.1:6379> zadd key1 2 lisi (integer) 1 127.0.0.1:6379> zadd key1 3 wangwu (integer) 1 127.0.0.1:6379> zrange key1 0 -1 1) "zhngsan" 2) "lisi" 3) "wangwu" 127.0.0.1:6379> zcard key1 (integer) 3 127.0.0.1:6379> zcard key2 (integer) 0 127.0.0.1:6379>
3、ZRANGE
ZRANGE key start stop [WITHSCORES]
- 返回存储在有序集合key中的指定范围的元素。 返回的元素可以认为是按得分从最低到最高排列。 如果得分相同,将按字典排序。
- 参数start和stop都是基于零的索引,即0是第一个元素,1是第二个元素,以此类推。 它们也可以是负数,表示从有序集合的末尾的偏移量,其中-1是有序集合的最后一个元素,-2是倒数第二个元素。
- 超出范围的索引不会产生错误。 如果start参数的值大于有序集合中的最大索引,或者start > stop,将会返回一个空列表。 如果stop的值大于有序集合的末尾,Redis会将其视为有序集合的最后一个元素。
返回值
给定范围内的元素列表例子
127.0.0.1:6379> zadd key1 1 one (integer) 1 127.0.0.1:6379> zadd key1 2 two (integer) 1 127.0.0.1:6379> zadd key1 3 three (integer) 1 127.0.0.1:6379> zrange key1 0 -1 1) "one" 2) "two" 3) "three" 127.0.0.1:6379> zrange key1 1 2 1) "two" 2) "three" 127.0.0.1:6379>
4、ZREM
ZREM key member [member ...]当key存在,但是其不是有序集合类型,就返回一个错误。
返回值
返回的是从有序集合中删除的成员个数,不包括不存在的成员例子
127.0.0.1:6379> zrange key1 0 -1 1) "one" 2) "two" 3) "three" 127.0.0.1:6379> zrem key1 one two (integer) 2 127.0.0.1:6379> zrange key1 0 -1 1) "three" 127.0.0.1:6379>