redis--sorted sets类型及操作

sorted sets类型及操作

sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。

zadd

向名称为key的zset中添加元素menber,score用于排序。如果元素存在,则更新其顺序值。

127.0.0.1:6379> zadd sset1 1 one
(integer) 1
127.0.0.1:6379> zadd sset1 2 two
(integer) 1
127.0.0.1:6379> zadd sset1 3 two
(integer) 0
127.0.0.1:6379> zrange sset1 0 -1
1) "one"
2) "two"
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"

注:上例中,0 -1是索引号而不是顺序值,0到-1代表从头取到尾。集合中的元素是唯一的,当再添加同一个值的时候,如果顺序号不一样,则仅更新顺序号。

zrem

删除名称为key的zset中的元素member

127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
127.0.0.1:6379> zrem sset1 two
(integer) 1
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"

zincrby

如果在名称为key的zset中已经存在元素member,则该元素的score增加increment否则向该集合添加该元素,其score的值为increment

127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"
127.0.0.1:6379> zincrby sset1 2 one
"3"
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "3"
127.0.0.1:6379> zincrby sset1 -2 one
"1"
127.0.0.1:6379> zrange sset1 0 -1 withscores
1) "one"
2) "1"

zrank

返回名称为key的zset中member元素的排名(按score从小到大排列)即下标

127.0.0.1:6379> zadd sset2 1 one
(integer) 1
127.0.0.1:6379> zadd sset2 2 two
(integer) 1
127.0.0.1:6379> zadd sset2 3 three
(integer) 1
127.0.0.1:6379> zadd sset2 4 four
(integer) 1
127.0.0.1:6379> zadd sset2 5 five
(integer) 1
127.0.0.1:6379> zrange sset2 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> zrank sset2 one
(integer) 0
127.0.0.1:6379> zrank sset2 three
(integer) 2

即:按元素排名从小到大排列,返回指定元素的下标值,下标从0开始,即第一个是0,第二个是1。

zrevrank

返回名称为key的zset中member元素的排名(按score从大到小排列)即下标

127.0.0.1:6379> zrange sset2 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> zrevrank sset2 one
(integer) 4
127.0.0.1:6379> zrevrank sset2 five
(integer) 0

zrevrange

返回名称为key的zset(按score从大到小顺序)中index从start到end的所有元素。

127.0.0.1:6379> zrange sset2 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> zrevrange sset2 0 -1 withscores
 1) "five"
 2) "5"
 3) "four"
 4) "4"
 5) "three"
 6) "3"
 7) "two"
 8) "2"
 9) "one"
10) "1"

zrangebyscore

返回集合中score在给定区间的元素

127.0.0.1:6379> zrange sset2 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> zrangebyscore sset2 2 4  withscores
1) "two"
2) "2"
3) "three"
4) "3"
5) "four"
6) "4"

zcount

返回集合中score在给定区间的数量

127.0.0.1:6379> zrange sset2 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> zcount sset2 2 4
(integer) 3

zcard

返回集合中元素的个数

127.0.0.1:6379> zcard sset2
(integer) 5

zremrangebyrank

删除集合中排名在给定区间的元素。

按索引值来删除,不是顺序值。

127.0.0.1:6379> zrange sset2 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> zremrangebyrank sset2 2 3
(integer) 2
127.0.0.1:6379> zrange sset2 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "five"
6) "5"

zremrangebyscore

删除集合中score在给定区间的元素(即顺序值)

127.0.0.1:6379> zrange sset2 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "five"
6) "5"
127.0.0.1:6379> zremrangebyscore sset2 2 5
(integer) 2
127.0.0.1:6379> zrange sset2 0 -1 withscores
1) "one"
2) "1"
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值