009- Redis 数据结构 - zset类型

Redis zset详解
本文详细介绍了Redis中有序集合zset的数据结构及操作命令,包括添加、查询、删除等常用功能,并提供了具体实例。

一、有序集合类型 :zset


   Redis 有序集合 zset 和集合 set 一样也是 string 类型元素的集合,且不允许重复的成员。

   不同的是 zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中的成员进行从小到大的排序。


keyvalue score
salary楚子航 12000
路明非 10050
诺 诺 15600



一、zset 数据的操作命令


1.zadd key score member [score member…]

功能:将一个或多个 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,则覆盖原来的值;score 可以是整数或浮点数。
返回值:新添加的元素个数。

127.0.0.1:6379> zadd stu 96 s1 98 s2 99 s3
(integer) 3

2.zrange key startIndex endIndex [WITHSCORES]

功能:查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序;
   startIndex 和 endIndex 都是从0开始表示第一个元素,1表示第二个元素,以此类推;
   startIndex 和 endIndex 都可以取负数,表示从后往前取,-1表示倒数第一个元素;
   WITHSCORES选项让score和value一同返回。
返回值:指定区间的成员组成的集合。

127.0.0.1:6379> zrange stu 0 -1
1) "s1"
2) "s2"
3) "s3"
127.0.0.1:6379> zrange stu 0 -1 withscores
1) "s1"
2) "96"
3) "s2"
4) "98"
5) "s3"
6) "99"

3.zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]

功能:获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从小到大)排序;
   使用符号”(“ 表示包括min但不包括max;
   withscores 显示score和 value;
   limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。
返回值:指定区间的集合数据。

127.0.0.1:6379> zrange stu 0 -1 withscores
1) "s1"
2) "96"
3) "s2"
4) "98"
5) "s3"
6) "99"
127.0.0.1:6379> zrangebyscore stu 97 100 withscores
1) "s2"
2) "98"
3) "s3"
4) "99"

4.zrem key member [member…]

功能:删除有序集合 key 中的一个或多个成员,不存在的成员被忽略。
返回值:被成功删除的成员数量,不包括被忽略的成员。

127.0.0.1:6379> zrem stu s1 s2
(integer) 2
127.0.0.1:6379> zrange stu 0 -1 withscores
1) "s3"
2) "99"

5.zcard key

功能:获取有序集 key 的元素成员的个数。
返回值:key存在,返回集合元素的个数;
    key不存在,返回0。

127.0.0.1:6379> zcard stu
(integer) 1

6.zcount key min max

功能:返回有序集 key 中, score 值在 min 和 max 之间(包括 score 值等于 min 或 max )的成员的数量。。
返回值:指定有序集合中分数在指定区间内的元素数量。

127.0.0.1:6379> zadd stu 95 s1 97 s2 96 s3 100 s4 85 s5 89 s6
(integer) 6
127.0.0.1:6379> zcount stu 95 100
(integer) 4

7.zrank key member

功能:获取有序集 key 中成员 member 的排名;
   有序集成员按 score 值从小到大顺序排列,从0开始排名,score最小的是0 。
返回值:指定元素在有序集合中的排名;
    如果指定元素不存在,返回nil;

127.0.0.1:6379> zrange stu 0 -1 withscores
 1) "s5"
 2) "85"
 3) "s6"
 4) "89"
 5) "s1"
 6) "95"
 7) "s3"
 8) "96"
 9) "s2"
10) "97"
11) "s4"
12) "100"
127.0.0.1:6379> zrank stu s5
(integer) 0
127.0.0.1:6379> zrank stu s4
(integer) 5

### 8.zrevrank key member 功能:获取有序集 key 中成员 member 的排名;    有序集成员按 score 值从大到小顺序排列,从0开始排名,score最大的是0 。 返回值:指定元素在有序集合中的排名;     如果指定元素不存在,返回nil; ```linux 127.0.0.1:6379> zrange stu 0 -1 withscores 1) "s5" 2) "85" 3) "s6" 4) "89" 5) "s1" 6) "95" 7) "s3" 8) "96" 9) "s2" 10) "97" 11) "s4" 12) "100" 127.0.0.1:6379> zrevrank stu s5 (integer) 5 ```

9.zscore key member

功能:获取有序集合key中元素member的分数。
返回值:返回指定有序集合元素的分数。

127.0.0.1:6379> zrange stu 0 -1 withscores
 1) "s5"
 2) "85"
 3) "s6"
 4) "89"
 5) "s1"
 6) "95"
 7) "s3"
 8) "96"
 9) "s2"
10) "97"
11) "s4"
12) "100"
127.0.0.1:6379> zscore stu s5
"85"

10.zrevrange key startIndex endIndex [WITHSCORES]

功能:查询有序集合,指定区间的内的元素。集合成员按 score 值从大到小来排序;
   startIndex 和 endIndex 都是从0开始表示第一个元素,1表示第二个元素,以此类推;
   startIndex 和 endIndex 都可以取负数,表示从后往前取,-1表示倒数第一个元素;
   WITHSCORES选项让score和value一同返回。
返回值:指定区间的成员组成的集合。

127.0.0.1:6379> zrange stu 0 -1
1) "s1"
2) "s2"
3) "s3"
127.0.0.1:6379>zrevrange stu 0 -1 withscores
1) "s3"
2) "99"
3) "s2"
4) "98"
5) "s1"
6) "96"

11.zrevrangebyscore key min max [WITHSCORES ] [LIMIT offset count]

功能:获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从大到小)排序;
   使用符号”(“ 表示包括min但不包括max;
   withscores 显示score和 value;
   limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。
返回值:指定区间的集合数据。

127.0.0.1:6379> zrange stu 0 -1 withscores
1) "s1"
2) "96"
3) "s2"
4) "98"
5) "s3"
6) "99"
127.0.0.1:6379> zrangebyscore stu 97 100 withscores
1) "s3"
2) "99"
3) "s2"
4) "98"



写在最后

以上关于 Redis 中 zset 类型数据结构的具体内容,后续如果有时间的话我也将持续更新,如果有错误或者是哪里不足的地方,欢迎各位大大提出宝贵的意见呀~

此外,想了解关于 Redis 的一些其他使用命令使用方法可以关注下方公众号,后台回复 “redis ”即可获取,期待着您的光临~

在这里插入图片描述


相关链接:

链接: 008- Redis 数据结构 - hash类型.
链接: 007- Redis 数据结构 - set类型.
链接: 006 - Redis 数据结构 - List类型.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值