Redis学习-sorted sets

有序集合跟hash很像,hash存储着key与value之间的对应关系,有序集合存储着成员与分值之间的映射关系,有序是靠分值来实现的
一些命令:
zadd key [nx|xx][ch][incr] [score member…]将所有指定的成员添加到键为key的有序集合里面,添加时可以指定多个分数/成员(score/member)对。如果指定的成员已经存在于有序集合中,则更新成员的分数;如果key不存在则会直接创建;如果key存在但类型不对将会返回一个错误信息,分值是一个双精度的浮点型数字字符串。+inf和-inf都是有效的值。[nx|xx][ch][incr]这几个参数是redis3.0.2新增的特性:
xx 仅更新存在的成员,不添加新成员
nx 公添加新成员,不更新存在的成员
ch 返回值为发生变化的成员总数,不加此参数返回的是新增成员的总数
incr 指定这个参数时,成员的操作就等同于zincrby,对成员的分数进行递增

zcard key 获取有序集合中成员数量
zcount key min max 返回min到max范围内的成员数量
zscore key member 返回有序集合key中,成员member的score值
zincrby key increment member 为key中的member的分值增加increment,如果member不存在,则新增一个member,分值为increment
zlexcount key [member1 [member2 计算有序集合中成员名称member1和member2之间的成员数量。-和+表示最小值和最大值
zrange key start top [withscores] 返回有序集合中指定区间内的成员
zrevrange key start stop [withscores] 返回有序集合中指定区间内的成员
zrangebylex key min max [limit offset count] 返回指定区间内的成员,按成员字典正序排序,分数必须相同。在一些业务场景中,需要对一个字符串数组按名称的字典顺序进行排序时,可以使用SortSet来处理。limit表示返回结果是否分页,limit指定后,offset与count必须有值,分别表示分页的起始位置与结果数量
zrevrangebylex key max in [limit offset count] 与zrangebylex相反,按成员字典倒序排列时,分数也必须相同。其他参数一样
zrangebyscore key min max [withscores] [limit offset count] 返回有序集合key中分数在min和max之间的所有元素(包括min和max)。元素是从低分到高分排序的,具有相同的分数按字典顺序排列
zrank key member 返回有序集合key中member的排名。其中有序集合按score值递增顺序排列,score的值最小成员排名为0
zrevrank key member与zrank相反,返回按score值递减排列的排名。
zrem key [member …] 从有序集合key中删除一个或多个成员。在2.4以前的版本只能删除一个成员。
zremrangebylex key min max 删除名称按字典由低到高排序并在min与max之间所有的成员。注意:此命令需要在成员分数相同的有序集合上使用,因为此命令是基于分数相同的有序集合而设计的,如果分数不相同使用此命令会导致删除结果不正确
zremrangebyrank key start stop 删除有序集合key中,排名在start与stop区间内的所有成员。start与stop都以0为最小分数。也可以为负数,表示位移从最高分处开始。例如,-1是分数最高的元素,-2是分数第二的,依次类推。
zremrangebyscore key min max 删除有序集合key中,所有score值介于min与max之间的成员。

zrevrangebyscore key max min [withscores] 返回有序集合中指定分数区间内的成员,分数由高到低排序

zscan key cursor [MATCH pattern] 迭代sorted sets里面的元素

127.0.0.1:6379> zadd zset1 1 one
(integer) 1
127.0.0.1:6379> zadd zset1 2 two
(integer) 1
127.0.0.1:6379> zadd zset1 2 ucn 
(integer) 1
127.0.0.1:6379> zadd zset1 3 three 4 four
(integer) 2
127.0.0.1:6379> zcard zset1
(integer) 5
127.0.0.1:6379> zscore zset1 three
"3"
127.0.0.1:6379> zcount zset1 1 3
(integer) 4
127.0.0.1:6379> zincrby zset1  2 one
"3"
127.0.0.1:6379> zlexcount zset1 - +
(integer) 5
127.0.0.1:6379> zrange zset1 1 5 withscores
1) "ucn"
2) "2"
3) "one"
4) "3"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zrevrange zset1 1 5 withscores
1) "three"
2) "3"
3) "one"
4) "3"
5) "ucn"
6) "2"
7) "two"
8) "2"

127.0.0.1:6379> zadd zset2 1 a 1 aa 1 abc 1 apple 1 b 1 c 1 d 1 d1 1 dd 1 dobb1
(integer) 10
127.0.0.1:6379> zrangebylex zset2 - +
 1) "a"
 2) "aa"
 3) "abc"
 4) "apple"
 5) "b"
 6) "c"
 7) "d"
 8) "d1"
 9) "dd"
10) "dobb1"

127.0.0.1:6379> zrevrangebylex zset2 + -
 1) "dobb1"
 2) "dd"
 3) "d1"
 4) "d"
 5) "c"
 6) "b"
 7) "apple"
 8) "abc"
 9) "aa"
10) "a"
127.0.0.1:6379> zrangebyscore zset2 1 2 withscores
 1) "a"
 2) "1"
 3) "aa"
 4) "1"
 5) "abc"
 6) "1"
 7) "apple"
 8) "1"
 9) "b"
10) "1"
11) "c"
12) "1"
13) "d"
14) "1"
15) "d1"
16) "1"
17) "dd"
18) "1"
19) "dobb1"
20) "1"
## 命令很多,也都很有用,用到的时候再来查询,就不一一介绍了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值