前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Redis】Redis 有序集合 Zset 操作 ( 简介 | 查询操作 | 增加操作 | 删除操作 | 修改操作 )

【Redis】Redis 有序集合 Zset 操作 ( 简介 | 查询操作 | 增加操作 | 删除操作 | 修改操作 )

作者头像
韩曙亮
发布2023-03-30 19:10:21
1.5K0
发布2023-03-30 19:10:21
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、有序集合 Zset


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

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

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

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

二、查询操作


1、查询 Zset 所有数据

执行

代码语言:javascript
复制
zrange student 0 -1

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

代码示例 :

代码语言:javascript
复制
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 所有数据和评分

执行

代码语言:javascript
复制
zrange student 0 -1 withscores

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

代码示例 :

代码语言:javascript
复制
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 数据

执行

代码语言:javascript
复制
zrangebyscore student 20 70
zrangebyscore student 20 70 withscores

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

代码示例 :

代码语言:javascript
复制
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 数据并从大到小排序

执行

代码语言:javascript
复制
zrevrangebyscore student 70 20
zrevrangebyscore student 70 20 withscores

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

代码示例 :

代码语言:javascript
复制
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 数据个数

执行

代码语言:javascript
复制
zcount student 20 70

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

代码示例 :

代码语言:javascript
复制
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 有序集合中的排名

执行

代码语言:javascript
复制
zrank student Jerry

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

代码示例 :

代码语言:javascript
复制
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 有序集合

执行

代码语言:javascript
复制
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 ;

代码示例 :

代码语言:javascript
复制
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、删除指定元素

执行

代码语言:javascript
复制
zrem student Tom

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

代码示例 :

代码语言:javascript
复制
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、修改元素评分

执行

代码语言:javascript
复制
zincrby student 20 Tom

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

代码示例 :

代码语言:javascript
复制
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>
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、有序集合 Zset
  • 二、查询操作
    • 1、查询 Zset 所有数据
      • 2、查询 Zset 所有数据和评分
        • 3、查询指定评分范围的 Zset 数据
          • 4、查询指定评分范围的 Zset 数据并从大到小排序
            • 5、统计指定评分范围的 Zset 数据个数
              • 6、查询指定元素在 Zset 有序集合中的排名
              • 三、增加操作
                • 1、向 Redis 中插入 Zset 有序集合
                • 四、删除操作
                  • 1、删除指定元素
                  • 五、修改操作
                    • 1、修改元素评分
                    相关产品与服务
                    云数据库 Redis
                    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档