【Redis】Redis 有序集合 Zset 操作 ( 简介 | 查询操作 | 增加操作 | 删除操作 | 修改操作 )
创始人
2024-05-26 07:39:35
0

文章目录

  • 一、有序集合 Zset
  • 二、查询操作
    • 1、查询 Zset 所有数据
    • 2、查询 Zset 所有数据和评分
    • 3、查询指定评分范围的 Zset 数据
    • 4、查询指定评分范围的 Zset 数据并从大到小排序
    • 5、统计指定评分范围的 Zset 数据个数
    • 6、查询指定元素在 Zset 有序集合中的排名
  • 三、增加操作
    • 1、向 Redis 中插入 Zset 有序集合
  • 四、删除操作
    • 1、删除指定元素
  • 五、修改操作
    • 1、修改元素评分





一、有序集合 Zset



有序集合 Zset 普通集合 Set 类似 , 都是 没有重复元素的集合 ;

有序集合 Zset 中的 元素排序 , 是 根据 评分 进行排序 , 每个成员 都关联了一个 评分 , 在该 有序集合 中 , 根据 评分 由低到高 进行排序 ;

Zset 中的元素 是 不可重复的 , 但是 元素 关联 的 评分 是可以重复的 , 也就是说 存在 两个不同的元素 关联着 相同的 评分 ;


Zset 中的元素 是 有序 的 , 根据 排序的索引 或者 元素的评分 可以获取 指定范围 的 成员 ; 如 : 获取 中间元素 ;





二、查询操作




1、查询 Zset 所有数据


执行

zrange student 0 -1

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中的所有元素 ;


代码示例 :

127.0.0.1:6379> zadd student 60 Tom 72 Jerry 49 Jack 81 Bill
(integer) 4
127.0.0.1:6379> zrange student 0 -1
1) "Jack"
2) "Tom"
3) "Jerry"
4) "Bill"
127.0.0.1:6379>

在这里插入图片描述


2、查询 Zset 所有数据和评分


执行

zrange student 0 -1 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中的所有元素 和 评分 ;


代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Tom"
4) "60"
5) "Jerry"
6) "72"
7) "Bill"
8) "81"
127.0.0.1:6379>

在这里插入图片描述


3、查询指定评分范围的 Zset 数据


执行

zrangebyscore student 20 70
zrangebyscore student 20 70 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中 20 ~ 70 分 之间的数据 ;


代码示例 :

127.0.0.1:6379> zrangebyscore student 20 70
1) "Jack"
2) "Tom"
127.0.0.1:6379> zrangebyscore student 20 70 withscores
1) "Jack"
2) "49"
3) "Tom"
4) "60"
127.0.0.1:6379>

在这里插入图片描述


4、查询指定评分范围的 Zset 数据并从大到小排序


执行

zrevrangebyscore student 70 20
zrevrangebyscore student 70 20 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中 20 ~ 70 分 之间的数据 , 并且从大到小排序 ;


代码示例 :

127.0.0.1:6379> zrevrangebyscore student 70 20
1) "Tom"
2) "Jack"
127.0.0.1:6379> zrevrangebyscore student 70 20 withscores
1) "Tom"
2) "60"
3) "Jack"
4) "49"
127.0.0.1:6379>

在这里插入图片描述


5、统计指定评分范围的 Zset 数据个数


执行

zcount student 20 70

命令 , 可以 统计 Zset 有序集合中 20 ~ 70 分 之间的数据个数


代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Bill"
6) "81"
127.0.0.1:6379>  zcount student 20 70
(integer) 1
127.0.0.1:6379>

在这里插入图片描述


6、查询指定元素在 Zset 有序集合中的排名


执行

zrank student Jerry

命令 , 可以 查询 Zset 有序集合中 Jack 元素排名 , 从 0 开始排序 ;


代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Bill"
6) "81"
127.0.0.1:6379> zrank student Jerry
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> zrank student Bill
(integer) 2
127.0.0.1:6379>

在这里插入图片描述





三、增加操作




1、向 Redis 中插入 Zset 有序集合


执行

zadd student 60 Tom 72 Jerry 49 Jack 81 Bill 

命令 , 可以 向 Redis 的 student 键 中 存储 Zset 数据 ,

  • Tom 评分 60 ,
  • Jerry 评分 72 ,
  • Jack 评分 49 ,
  • Bill 评分 81 ;

排序原则是 根据 评分 从小到大 进行排序 ;

如果按照 评分 从低到高 排列为 : Jack < Tom < Jerry < Bill ;


代码示例 :

127.0.0.1:6379> zadd student 60 Tom 72 Jerry 49 Jack 81 Bill
(integer) 4
127.0.0.1:6379> zrange student 0 -1
1) "Jack"
2) "Tom"
3) "Jerry"
4) "Bill"
127.0.0.1:6379>

在这里插入图片描述





四、删除操作




1、删除指定元素


执行

zrem student Tom

命令 , 可以 从 Zset 有序集合 中 删除 Tom 元素 ;


代码示例 :

127.0.0.1:6379> zrem student Tom
(integer) 1
127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Bill"
6) "81"
127.0.0.1:6379>

在这里插入图片描述





五、修改操作




1、修改元素评分


执行

zincrby student 20 Tom

命令 , 可以 为 Zset 有序集合 中 的 Tom 元素 的评分 增加 20 ;


代码示例 :

127.0.0.1:6379> zincrby student 20 Tom
"80"
127.0.0.1:6379> zrange student 0 -1 withscores
1) "Jack"
2) "49"
3) "Jerry"
4) "72"
5) "Tom"
6) "80"
7) "Bill"
8) "81"
127.0.0.1:6379>

在这里插入图片描述

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...