Redis的sorted-set

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36411874/article/details/82286294

目录

 

sorted-set和set主要区别:

常用命令

使用场景


sorted-set和set主要区别:

sorted-set都有一个分数与之关联,redis利用分数进行从小到大排序。分数可以重复。

sorted-set中的成员在集合中的位置是有序的。

(游戏排名,微博热点)

常用命令

添加元素:zadd,已经存储在元素的时候,会用新的分数,替换原来的分数。个数不显示,值不添加。

127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
(integer) 3
127.0.0.1:6379> zadd mysort 100 zs
(integer) 0
127.0.0.1:6379> zadd mysort 60 hh
(integer) 1

获得元素:zscore mysort zs

扫描二维码关注公众号,回复: 3164165 查看本文章
127.0.0.1:6379> zscore mysort zs
"100"

获得具体成员的数量:zcard

127.0.0.1:6379> zcard mysort
(integer) 4

删除元素:zrem

127.0.0.1:6379> zrem mysort ww
(integer) 1
127.0.0.1:6379> zcard mysort
(integer) 3

范围查询:zrange 名字 0 -1(从开始到结束)

127.0.0.1:6379> zadd mysort 85 jack
(integer) 1
127.0.0.1:6379> zadd mysort 95 tom
(integer) 1
127.0.0.1:6379> zrange mysort 0 -1
1) "hh"
2) "ls"
3) "jack"
4) "tom"
5) "zs"

显示分数以及数值:(从小到大排序):zrange

127.0.0.1:6379> zrange mysort 0 -1 withscores
 1) "hh"
 2) "60"
 3) "ls"
 4) "80"
 5) "jack"
 6) "85"
 7) "tom"
 8) "95"
 9) "zs"
10) "100"

显示分数以及数值:(从大到小):zreverange

127.0.0.1:6379> zrevrange mysort 0 -1 withscores
 1) "zs"
 2) "100"
 3) "tom"
 4) "95"
 5) "jack"
 6) "85"
 7) "ls"
 8) "80"
 9) "hh"
10) "60"

根据排名范围删除元素:zremrangebyrank

127.0.0.1:6379> zremrangebyrank mysort 0 4
(integer) 5
127.0.0.1:6379>  smembers mysort
(empty list or set)

根据分数删除:zremrangebyscore,删除分数之间的值。

127.0.0.1:6379> zadd mysort 80 ls 90 ws 100 hh 
(integer) 3
127.0.0.1:6379> zremrangebyscore mysort 80 90
(integer) 2
127.0.0.1:6379> zrange mysort 0 -1
1) "hh"

根据分数查询

127.0.0.1:6379> zrangebyscore mysort 0 100
1) "zs"
2) "ls"
3) "ww"
4) "hh"
127.0.0.1:6379> zrangebyscore mysort 0 100 withscores
1) "zs"
2) "70"
3) "ls"
4) "80"
5) "ww"
6) "90"
7) "hh"
8) "100"

限制2个显示。

127.0.0.1:6379> zrangebyscore mysort 0 100 withscores limit 0 2
1) "zs"
2) "70"
3) "ls"
4) "80"

给分数添加

127.0.0.1:6379> zincrby mysort ls 3
(error) ERR value is not a valid float
127.0.0.1:6379> zincrby mysort 3 ls
"83"
127.0.0.1:6379> zsocre mysort ls
(error) ERR unknown command `zsocre`, with args beginning with: `mysort`, `ls`, 
127.0.0.1:6379> zscore mysort ls
"83"

查看个数,分数从80到90的

127.0.0.1:6379> zcount mysort 80 90
(integer) 2

使用场景

(1)用于大型游戏积分排行榜,变化的时候zadd可以更新玩家分数,zrange获取积分,多少用户的信息。

(2)构建索引数据。

猜你喜欢

转载自blog.csdn.net/qq_36411874/article/details/82286294