峰Redis学习(6)Redis 数据结构(sorted-set的操作)

第六节:Redis 数据结构之sorted-set 类型
存储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> zrange sort1 0 -1
1) "b"
2) "a"
3) "c"
我们添加集合sort1 元素是a,b,c 评分分别是5,4,6
集合里的排序是根据评分从小到大排序的;
 
 
继续添加元素
假如此元素集合里面已经有了,则覆盖
127.0.0.1:6379> zadd sort1 7 b
(integer) 0
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "b"
127.0.0.1:6379> zscore sort1 b     //通过zscore获取b的评分,发现已修改
"7"
假如此元素不在集合里,则添加
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> 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> zcard sort1
(integer) 3
withscores  把评分也显示出来
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "a"
2) "5"
3) "c"
4) "6"
5) "d"
6) "9"
zrevrange 降序排列
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "c"
4) "6"
5) "a"
6) "5"
zremrangebyrank 根据排名来删除元素  删除3个
127.0.0.1:6379> zrange sort1 0 -1 withscores
 1) "a"
 2) "5"
 3) "f"
 4) "5"
 5) "c"
 6) "6"
 7) "d"
 8) "9"
 9) "e"
10) "10"
127.0.0.1:6379> zremrangebyrank sort1 0 2
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "e"
4) "10"
zremrangebyscore 根据具体评分范围来删除元素
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"
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"
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 20 23
(integer) 3
Sorted-Set使用场景
大型在线游戏积分排行榜
构建索引数据
 
 
 
 
原文地址:https://www.cnblogs.com/tenWood/p/8685094.html