Redis-数据结构(有序字符串集合sorted set)

Sorted-Set和Set的区别

Sorted-Set中的成员在集合中的位置是有序的


有序字符串(sorted set)集合:



zadd 添加元素 里面包括评分和值

 127.0.0.1:6379> zadd sort1 5 a 4 b 6 c
(integer) 3
127.0.0.1:6379> zranger 0 -1



zrange 是查找元素 -1代表最后一个(默认升序,也可用zrevrange 降序排列)
127.0.0.1:6379> zrange sort1 0 -1
1) "b"
2) "a"
3) "c"


127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "a"
2) "5"
3) "c"
4) "6"
5) "d"
6) "9"
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "c"
4) "6"
5) "a"
6) "5"

后面添加 withscores 把评分也显示出来

127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "a"
2) "5"
3) "c"
4) "6"
5) "d"
6) "9"



zrangebyscore 根据评分范围来查找元素

127.0.0.1:6379> zrange sort1 0 -1 withscores
 1) "d"
 2) "9"
 3) "h"
 4) "18"
 5) "i"
 6) "20"
 7) "j"
 8) "23"
 9) "k"
10) "30"
127.0.0.1:6379> zrangebyscore sort1 18 23 withscores
1) "h"
2) "18"
3) "i"
4) "20"
5) "j"
6) "23"

limit 限定查找起始 类似分页

127.0.0.1:6379> zrangebyscore sort1 18 23 withscores limit 0 2
1) "h"
2) "18"
3) "i"
4) "20"



加入我们继续添加元素

这里分两种情况

加入次元素集合里面已经有了,则覆盖

127.0.0.1:6379> zadd sort1 7 b
(integer) 0

通过zscore 获取b的评分

127.0.0.1:6379> zscore sort1 b
"7"

假如添加的元素不在集合里,则添加进去

127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "b"

127.0.0.1:6379> zadd sort1 9 d
(integer) 1
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "b"
4) "d"



zrem 删除元素

127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "b"
4) "d"
127.0.0.1:6379> zrem sort1 b
(integer) 1
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "d"



zcard 查看集合里的元素个数

127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "d"
127.0.0.1:6379> zcard sort1
(integer) 3



zremrangebyrank 根据排名来删除元素 删除3个

127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "f"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> zremrangebyrank sort1 0 2
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1
1) "d"
2) "e"



zremrangbyscore 根据具体评分范围来删除元素

127.0.0.1:6379> zrange sort1 0 -1 withscores
 1) "d"
 2) "9"
 3) "e"
 4) "10"
 5) "f"
 6) "11"
 7) "g"
 8) "16"
 9) "h"
10) "18"
127.0.0.1:6379> zremrangebyscore sort1 10 16
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "h"
4) "18"



zincrby 给指定元素加分

127.0.0.1:6379> zrange sort1 0 -1 withscores
 1) "d"
 2) "9"
 3) "h"
 4) "18"
 5) "i"
 6) "20"
 7) "j"
 8) "23"
 9) "k"
10) "30"
127.0.0.1:6379> zincrby sort1 5 h
"23"
127.0.0.1:6379> zrange sort1 0 -1 withscores
 1) "d"
 2) "9"
 3) "i"
 4) "20"
 5) "h"
 6) "23"
 7) "j"
 8) "23"
 9) "k"
10) "30"



zcount查找指定评分范围的元素个数

127.0.0.1:6379> zrange sort1 0 -1 withscores
 1) "d"
 2) "9"
 3) "i"
 4) "20"
 5) "h"
 6) "23"
 7) "j"
 8) "23"
 9) "k"
10) "30"
127.0.0.1:6379> zcount sort1 9 22
(integer) 2


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值