89、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Zset 相关命令

本次讲解要点:
** Set相关命令:是指value中的数据类型**

启动redis服务器:
打开小黑窗:
C:\Users\JH>e:
E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin
E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redis.windows.conf

启动redis客户端:
小黑窗:redis-cli

★ Redis的数据类型(都是针对Redis的value而言)

redis和map差不多。
Map 只能保存在内存中,
redis可以保存在磁盘。

Redis的key都是String

▲ value支持如下5种数据类型:

String: 最基本的数据类型,可保存任何的数据。
List: 元素是String的有序集合,集合内的元素可以重复。
Set: 元素是String的无序集合,集合内的数据不能重复。
Zset: 元素是String的有序集合,集合内的数据不能重复。
Hash: 也是key-value集合(类似Java的Map),key和value都是String类型的数据。这种类型主要用于保存对象。

Redis为不同数据类型提供了不同的操作命令,因此特定类型的数据需要使用对应类型的命令来执行操作。

★ ZSet相关的命令

zset 和 set 的区别:
ZSet相当于Set的增强版,它会每个元素都分配一个double类型的score(分数),并按该score对集合中元素排序。有点类似于TreeSet。
ZSet集合内元素不允许重复,但元素的score是可以重复的。
分数大的排前面

ZADD key score member [score member …]: 向ZSet添加一个或多个元素,或更新已有的元素的score。

ZCARD key: 返回key对应的ZSet中元素的个数

ZCOUNT key min max: 返回ZSet的score位于min到max之间的元素个数。

ZDIFF numkeys key [key …] [WITHSCORES]: 计算给定ZSet之间的差值。该命令要Redis 6.2+才可用。

ZDIFFSTORE destination numkeys key [key …]: ZDIFF的存储版本,
将给定ZSet的差值保存到destination中。该命令要Redis 6.2+才可用。

ZINCRBY key increment member: 将memeber元素的score增加increment。
随着元素的score的改变,ZSet中元素的顺序也会随之改变。

ZINTER numkeys key [key …]: 计算给定ZSet的交集。该命令要Redis 6.2+才可用。

ZINTERSTORE destination numkeys key [key …]: ZINTER的存储版本,
将给定ZSet的交集保存到destination中。交集中元素的score是相同元素的score之和。

ZLEXCOUNT key min max: 返回ZSet内按字典排序时从min到max之间所有元素的个数。
一般用于对ZSet中所有元素的score都相等时进行处理。
min:可支持的写法: - 代表最小值。[字符串, 代表包含边界。(字符串,代表不包含边界。

  max:可支持写法:+代表最大值,[字符串, 代表包含边界。(字符串,代表不包含边界。提示:当向ZSet添加多个score相等的元素时,ZSet就会使用字典顺序(英文字典中字母的排序方式)对这些元素排序,此时就可按字典顺序来获取指定范围内元素的个数。

ZPOPMAX key [count]: 弹出ZSet中分数最大的元素。

BZPOPMAX key [key…] timeout: ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。

ZPOPMIN key [count]: 弹出ZSet中分数最小的元素。

BZPOPMIN key [key …] timeout: ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。

ZRANGE key start stop [WITHSCORES]: 返回ZSet内从start索引到stop索引范围内的元素(及score)。
索引支持负数,负数表示从最后面开始,比如-1代表最后一个元素。
类似于List的LRange命令。

ZRANGEBYLEX key min max [LIMIT offset count]: 返回ZSet内按字典排序时从min到max之间的所有元素。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 返回ZSet内分数从min到max之间的所有元素。

ZRANK key member: 返回ZSet内指定元素的索引。score最小的索引是0。

ZREM key member [member …]: 删除ZSet内一个或多个元素。

ZREMRANGEBYLEX key min max: 按字典排序删除ZSet从min到max之间的所有元素。

ZREMRANGEBYRANK key start stop: 删除ZSet内从start索引到stop索引之间的所有元素。

ZREMRANGEBYSCORE key min max: 删除ZSet内score位于min到max之内的所有元素。

ZREVRANGE key start stop [WITHSCORES]: ZRANGE的反向版本。

ZREVRANGEBYLEX key max min [LIMIT offset count]: ZRANGEBYLEX的反向版本。

ZREVRANGEBYSCORE key max min [WITHSCORES]: ZRANGEBYSCORE的反向版本。

ZREVRANK key member: ZRANK的反向版本。score最大的反向索引反而是0。

ZSCORE key member: 获取指定元素的score。

ZUNION numkeys key [key …]: 计算给定ZSet的并集。该命令要Redis 6.2+才可用。

ZUNIONSTORE destination numkeys key [key …]: ZUNION的存储版本,将给定ZSet的并集保存到destination中。

ZMSCORE key member [member …]: 获取多个元素的score,该命令要Redis 6.2+才可用。

ZSCAN key cursor [MATCH pattern] [COUNT count]:
使用cursor遍历key对应的ZSet。pattern指定只遍历匹配pattern的元素。

  注意:实际上该count选项根本不起作用。因为redis的设计在遍历Zet、Hash,总会将所有的元素在一次遍历时就返回出来。【注意点:】:在Zset中,将元素的位置索引称为RANK,排在第一位的(score最小的元素)的RANK是0。

演示:

ZADD key score member [score member …]: 向ZSet添加一个或多个元素,或更新已有的元素的score。
在这里插入图片描述

ZCARD key: 返回key对应的ZSet中元素的个数
在这里插入图片描述

ZCOUNT key min max: 返回ZSet的score位于min到max之间的元素个数。
在这里插入图片描述

ZINCRBY key increment member: 将memeber元素的score增加increment。
随着元素的score的改变,ZSet中元素的顺序也会随之改变。
就是给某个元素增加分数在这里插入图片描述

ZINTERSTORE destination numkeys key [key …]: ZINTER的存储版本,
将给定ZSet的交集保存到destination中。交集中元素的score是相同元素的score之和。

这里的 numkeys 就是如果是两个集合要进行查询交集的部分,那么这个 numkeys 就要写为 2,
3个zset集合要查交集,那么numkeys就是3

在这里插入图片描述

在这里插入图片描述

ZLEXCOUNT key min max: 返回ZSet内按字典排序时从min到max之间所有元素的个数。
注意点:一般用于对ZSet中 所有元素的score都相等 时进行处理

min:可支持的写法: - 代表最小值。[ 字符串, 代表包含边界。(字符串,代表不包含边界。
max:可支持写法:+代表最大值,[ 字符串, 代表包含边界。(字符串,代表不包含边界。

提示:
当向ZSet添加多个score相等的元素时,
ZSet就会使用 字典顺序(字典顺序:英文字典中字母的排序方式)对这些元素排序,
此时就可按字典顺序来获取指定范围内元素的个数。

在这里插入图片描述
ZPOPMAX key [count]: 弹出ZSet中分数最大的元素。并回显

在这里插入图片描述
BZPOPMAX key [key…] timeout: ZPOPMAX的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
在这里插入图片描述

ZPOPMIN key [count]: 弹出ZSet中分数最小的元素。
BZPOPMIN key [key …] timeout: ZPOPMIN的阻塞版本。该命令会阻塞进程,直到指定ZSet有元素弹出或超时。
在这里插入图片描述

ZRANGE key start stop [WITHSCORES]: 返回ZSet内从start索引到stop索引范围内的元素(及score)。
索引支持负数,负数表示从最后面开始,比如-1代表最后一个元素。
类似于List的LRange命令。
在这里插入图片描述

ZRANGEBYLEX key min max [LIMIT offset count]: 返回ZSet内按字典排序时从min到max之间的所有元素。
提示:
当向ZSet 添加多个score相等的元素时,
ZSet就会使用 字典顺序(字典顺序:英文字典中字母的排序方式)对这些元素排序,
此时就可按字典顺序来获取指定范围内元素的个数。
在这里插入图片描述

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 返回ZSet内分数从min到max之间的所有元素。
在这里插入图片描述

ZRANK key member: 返回ZSet内指定元素的索引。score最小的索引是0。
在这里插入图片描述

ZREM key member [member …]: 删除ZSet内一个或多个元素。
在这里插入图片描述

ZREMRANGEBYLEX key min max: 按字典排序删除ZSet从min到max之间的所有元素。
在这里插入图片描述

ZREMRANGEBYRANK key start stop: 删除ZSet内从start索引到stop索引之间的所有元素。
在这里插入图片描述

ZREMRANGEBYSCORE key min max: 删除ZSet内score位于min到max之内的所有元素。
在这里插入图片描述

ZSCORE key member: 获取指定元素的score。
在这里插入图片描述

ZSCAN key cursor [MATCH pattern] [COUNT count]:
使用cursor遍历key对应的ZSet。pattern指定只遍历匹配pattern的元素。

注意:实际上该count选项根本不起作用。因为redis的设计在遍历Zet、Hash,总会将所有的元素在一次遍历时就返回出来。

【注意点:】:在Zset中,将元素的位置索引称为RANK,排在第一位的(score最小的元素)的RANK是0。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建型设计模式 原型模式 建造者模式 创建者模式对比

创建型设计模式 单例 工厂模式 看这一篇就够了_软工菜鸡的博客-CSDN博客 4.3 原型模式 4.3.1 概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 4.3.2 结构 原型模式包含如下角色: 抽象原型类:规定了…

excel中将一个sheet表根据条件分成多个sheet表

有如下excel表,要求:按月份将每月的情况放在一个sheet中。 目测有6个月,就应该有6个sheet,每个sheet中体现本月的情况。 一、首先增加一个辅助列,月份,使用month函数即可。 填充此列所有。然后复制【月份】…

力扣练习——链表在线OJ

目录 提示: 一、移除链表元素 题目: 解答: 二、反转链表 题目: 解答: 三、找到链表的中间结点 题目: 解答: 四、合并两个有序链表(经典) 题目: 解…

Android之startActivityForResult过时升级替换方法

一。旧版回调 startActivityForResult(intent, 3);//注意要求码 //接收其它页面回传结果和显示图片Overridepublic void onActivityResult(int requestCode, int resultCode, Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);//页面传回来的值i…

Python之json的dump和dumps方法

一&#xff0c;dumps 将字典转换为字符串 info_dcit {foo1:a, foo2:b, foo3:c, } data_dumps json.dumps(info_dcit, indent4) print(data_dumps) # data_dumps: <class str>data_dumps: {"foo1": "a","foo2": "b","…

Redis与分布式-分布式锁

接上文 Redis与分布式-集群搭建 1.分布式锁 为了解决上述问题&#xff0c;可以利用分布式锁来实现。 重新复制一份redis&#xff0c;配置文件都是刚下载时候的不用更改&#xff0c;然后启动redis服务和redis客户。 redis存在这样的命令&#xff1a;和set命令差不多&#xff0…

十四天学会C++之第二天(函数和库)

1. 函数的定义和调用 在C中&#xff0c;函数是组织和结构化代码的关键工具之一。它们允许您将一段代码封装成一个可重复使用的模块&#xff0c;这有助于提高代码的可读性和维护性。 为什么使用函数&#xff1f; 函数在编程中的作用不可小觑。它们有以下几个重要用途&#xf…

ASUS华硕飞行堡垒5笔记本FX504GM_FX80GM原装出厂Windows10系统

系统自带所有驱动、出厂主题壁纸、系统属性华硕专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序 下载链接&#xff1a;https://pan.baidu.com/s/1C8vPvqiwqoUY3PxC915LXg?pwdv079

基于被囊群优化的BP神经网络(分类应用) - 附代码

基于被囊群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于被囊群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.被囊群优化BP神经网络3.1 BP神经网络参数设置3.2 被囊群算法应用 4.测试结果&#x…

小白自己​制作一个苹果.ios安卓.apk文件app应用手机下载的代码合并文件一码双端的落地页面详细教程

小白自己制作一个苹果.ios安卓.apk文件app应用手机下载的代码落地页面详细教程 图片取自这里哈 我们在这篇文章中教你如何制作一个手机下载引导落地页。这个落地页将可以自动识别访问者使用的是安卓还是苹果设备&#xff0c;并引导下载相应的应用程序。让我们按照以下步骤一…

Selenium 浏览器坐标转桌面坐标

背景&#xff1a; 做图表自动化项目需要做拖拽操作&#xff0c;但是selenium提供的拖拽API无效&#xff0c;因此借用pyautogui实现拖拽&#xff0c;但是pyautogui的拖拽是基于Windows桌面坐标实现的&#xff0c;另外浏览器中的坐标与windows桌面坐标并不是一比一对应的关系&am…

P1223 排队接水 【贪心】

P1223 排队接水 【贪心】 题目描述 有 n 个人在一个水龙头前排队接水&#xff0c;假如每个人接水的时间为 Ti &#xff0c;请编程找出这 n 个人排队的一种顺序&#xff0c;使得 n 个人的平均等待时间最小。 输入格式 第一行为一个整数 n。 第二行 n 个整数&#xff0c;第 i 个整…

【计算机组成原理】考研真题攻克与重点知识点剖析 - 第 1 篇:计算机系统概述

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术有限&#xff…

基于SpringBoot+MyBatis实现的个人博客系统(一)

这篇主要讲解一下如何基于SpringBoot和MyBatis技术实现一个简易的博客系统(前端页面主要是利用CSS,HTML进行布局书写),前端的静态页面代码可以直接复制粘贴,后端的接口以及前端发送的Ajax请求需要自己书写. 博客系统需要完成的接口: 注册登录博客列表页展示博客详情页展示发布博…

如何在 Google Earth 中创建轨迹、路线并制作动画

如何创建航迹 https://kurviger.de/en Google 地球飞行教程(天桥动画) 选择合适的点 &#xff08;可调整视图快照&#xff09;点击录制&#xff0c;依次点击图标即可

WebSocket实战之六心跳重连机制

一、前言 WebSocket应用部署到生产环境&#xff0c;我们除了会碰到因为经过代理服务器无法连接的问题&#xff08;注&#xff1a;该问题可以通过搭建WSS来解决&#xff0c;具体配置请看 WebSocket实战之四WSS配置 &#xff09;&#xff0c;另外一个问题就是外网环境不稳定经常…

操作系统原理实验四:管道通信、消息通信程序

实验四&#xff1a;管道通信、消息通信程序 课程名称&#xff1a;操作系统原理 项目名称&#xff1a;管道通信、消息通信程序 实验&#xff08;实训&#xff09;类型&#xff1a;综合性实验 实验&#xff08;实训&#xff09;课时&#xff1a;2 [目的和要求] 目的&#xff1…

基于SSM的餐厅点菜管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

使用select实现服务器并发

select函数介绍&#xff1a; select 函数是一个用于在一组文件描述符上进行异步I/O多路复用的系统调用。它可以同时监视多个文件描述符&#xff0c;等待其中任何一个文件描述符准备就绪&#xff0c;然后进行相应的操作。 以下是select函数的原型&#xff1a; #include <…

使用Visual Studio调试排查Windows系统程序audiodg.exe频繁弹出报错

VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff09;https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&a…