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

本次讲解要点:
List相关命令:是指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为不同数据类型提供了不同的操作命令,因此特定类型的数据需要使用对应类型的命令来执行操作。

★ List相关的命令

在这里插入图片描述
Redis 的 List 和 Java 的 List 是有些相似的,只不过 Redis 的 List 的元素都是String类型。
Redis的List最多可包含 2^32-1个元素,其实跟 Java 的 int 的取值范围有点像。
但是这里的2^32-1是表示list可以存储的具体的个数。

LPUSH key value [value …]: 向key对应List的左边(头部,索引较小一端)添加一个或多个元素。
因此通过该命令新增的元素的索引始终是0

LPUSHX key value: LPUSH的安全版本,仅当key对应的List存在时有效。

LINDEX key index: 获取key对应List的index处的元素。

LINSERT key BEFORE|AFTER pivot value: 在key对应List的pivot元素之前或之后插入新的value元素。
该命令要求被参照的元素、List都是存在,否则就会返回-1。

LLEN key: 返回key对应List的长度。

LPOP key: 弹出并返回key对应List的第一个元素(索引为0的元素)。

LRANGE key start stop: 获取key对应List中start到stop范围的元素。
此处的range会前后边界都包括了。

LREM key count value: 从key对应的List中删除count个value元素。
如果count大于0,则从左到右删除count个value元素;
如果count小于0,则从右到左删除count个value元素;
如果count等于0,则删除所有的value元素。

LSET key index value: 将key对应List的index处的元素改为value。

LTRIM key start stop: 修剪List:只保留key对应List的start到stop之间的元素。
此处的range会前后边界都包括了。

RPOP key: 弹出并返回key对应List的最后一个元素。

RPOPLPUSH source destination: 弹出source List的最后一个元素,添加到destination List的左边(头部),
并返回该元素。
如果destination对应的List不存在,该命令会创建一个新的List。

RPUSH key value [value …]: 向key对应List的右边(尾部)添加一个或多个元素。
因此通过该命令新增的元素的索引始终是长度-1

RPUSHX key value: RPUSH的安全版本,仅当key对应的List存在时有效。

BLPOP key [key… ] timeout: LPOP的阻塞版本。
弹出、并返回多个List的第一个元素,如果某个List没有元素,
该命令会阻塞进程,直到所有List都有元素弹出或超时。该命令的B代表Block。

BRPOP key [key ] timeout: RPOP的阻塞版本。弹出、并返回多个List的最后一个元素,
如果某个List没有元素,该命令会阻塞进程,直到所有List都有元素弹出或超时。

BRPOPLPUSH source destination timeout: RPOPLPUSH的阻塞版本,如果source中没有元素,该命令会阻塞进程,
直到source有元素弹出或超时。

演示

LPUSH key value [value …]: 向key对应List的左边(头部,索引较小一端)添加一个或多个元素。
因此通过该命令新增的元素的索引始终是0

注意: 在添加元素的时候,不要用逗号隔开,不然逗号会被认为是该元素的一部分,
比如 b1, b2 ----- 那么这个元素就是 【b1,】【b2】
在这里插入图片描述

LPUSHX key value: LPUSH的安全版本,仅当key对应的List存在时有效。
就是Redis要存在这个key才能添加list元素的操作。如图,reids中没有name这个key,所以无法添加该list集合及其元素。
在这里插入图片描述

RPUSH key value [value …]: 向key对应List的右边(尾部)添加一个或多个元素。
因此通过该命令新增的元素的索引始终是长度-1
在这里插入图片描述

RPUSHX key value: RPUSH的安全版本,仅当key对应的List存在时有效。
同理,要有这个key才能执行该操作,也可以说要往这个list添加元素,那么得先存在这个key-value。

LINDEX key index: 获取key对应List的index处的元素。
在这里插入图片描述

LINSERT key BEFORE|AFTER pivot value: 在key对应List的pivot元素之前或之后插入新的value元素。
该命令要求被参照的元素、List都是存在,否则就会返回-1。
在这里插入图片描述

LLEN key: 返回key对应List的长度。
在这里插入图片描述

LPOP key: 弹出并返回key对应List的第一个元素(索引为0的元素)。
在这里插入图片描述

LRANGE key start stop: 获取key对应List中start到stop范围的元素。
此处的range会前后边界都包括了。
在这里插入图片描述

LREM key count value: 从key对应的List中删除count个value元素。
如果count大于0,则从左到右删除count个value元素;
如果count小于0,则从右到左删除count个value元素;
如果count等于0,则删除所有的value元素。

在这里插入图片描述

LSET key index value: 将key对应List的index处的元素改为value。
在这里插入图片描述

LTRIM key start stop: 修剪List:只保留key对应List的start到stop之间的元素。
此处的range会前后边界都包括了。
在这里插入图片描述

RPOP key: 弹出(删除)并返回key对应List的最后一个元素。
在这里插入图片描述

RPOPLPUSH source destination: 弹出 source List的最后一个元素,添加到 destination List的左边(头部),
并返回该元素。
如果destination对应的List不存在,该命令会创建一个新的List。
在这里插入图片描述

BRPOPLPUSH source destination timeout: RPOPLPUSH的阻塞版本,如果source中没有元素,该命令会阻塞进程,
直到source有元素弹出或超时。

在这里插入图片描述

BLPOP key [key… ] timeout: LPOP的阻塞版本。
弹出、并返回多个List的第一个元素,如果某个List没有元素,
该命令会阻塞进程,直到所有List都有元素弹出或超时。该命令的B代表Block。

添加多个key,但是只弹出第一个key的数据

在这里插入图片描述

BRPOP key [key ] timeout: RPOP的阻塞版本。弹出、并返回多个List的最后一个元素,
如果某个List没有元素,该命令会阻塞进程,直到所有List都有元素弹出或超时。
在这里插入图片描述

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

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

相关文章

Java编码技巧:验证码

目录 1.1、EasyCaptcha(优选,支持种类多,样式多,使用简单)1.1.1、作用1.1.2、官方信息1.1.3、使用案例1.1.4、依赖1.1.5、代码1.1.6、效果1.1.7、拓展 1.2、kaptcha1.2.1、作用1.2.2、官方信息1.2.3、使用案例1.2.4、依…

DE0开发板交通灯十字路口红绿灯VHDL

名称:基于DE0开发板的交通灯十字路口红绿灯 软件:Quartus 语言:VHDL 要求: 设计一个十字路口交通信号灯的控制电路。分为两种情况,正常状态和报警状态。 1.正常状态:要求红、绿灯按一定的规律亮和灭&a…

触觉智能 PurPle Pi OH(OpenHarmony)开发板

资料汇总 内容预览 产品介绍 PurPle-Pi OH 规格书​​​​​​ 系统编译 Purple-Pi-OH Linux SDK编译 Purple-Pi-OH OHOS SDK编译 使用手册 Purple-Pi-OH Ubuntu系统使用手册 常见FAQ 常见问题 官网 官网地址 Purple Pi OH介绍 Purple Pi OH作为一款兼容树莓派的开…

多个pdf合并成一个文件,3个方法合并pdf

如何把多个pdf合并成一个文件?在我们日常的工作中,经常会遇到一些需要处理的文件,其中包括PDF文件。特别是当我们需要将多个PDF文件合并成一个PDF文件时,会面临一些困难。这样的情况下,我们的阅读能力会受到限制&#…

软件测试中的测试工具和自动化测试

1. 测试工具 测试工具也分为不同人员使用的 开发人员:测试框架,编写测试用例;各类线上dump分析工具如windgb;开发时的集成IDE工具如Visual Studio,idea等等 面向不同测试需求的测试工具 软件测试是软件开发生命周期…

手摸手带你 在Windows系统中安装Istio

Istio简介 通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。 通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务…

Multisim14.0仿真(二十七)基于UC3842的反激式开关电源的设计及仿真

一、UC3842简介: UC3842为固定频率电流模式PWM控制器。它们是专门为OFF−线和直流到直流转换器应用与最小的外部组件。内部实现的电路包括用于精确占空比控制的修剪振荡器、温度补偿参考、高增益误差放大器、电流传感比较器和理想适合于驱动功率MOSFET的高电流温度极…

MySQL学习笔记24

MySQL的物理备份: xtrabackup备份介绍: xtrabackup优缺点: 优点: 1、备份过程快速、可靠(因为是物理备份);直接拷贝物理文件。 2、支持增量备份,更为灵活; 3、备份…

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 C: 班级活动

[蓝桥杯 2023 国 B] 班级活动 【问题描述】 小明的老师准备组织一次班级活动。班上一共有 n n n 名( n n n 为偶数)同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n n …

Eclipse环境基于HDFS的API进行开发

文章目录 IOUtils方式读取文件1.文件准备2.下载安装Eclipse3.打开eclipse,新建java项目,添加关于hadoop的一些包4.包内新建类进行开发5.利用打包的方式生成java jar包6.验证代码正确性 其它问题:Exception in thread “main“ java.lang.Unsu…

【前端】ECMAScript6从入门到进阶

【前端】ECMAScript6从入门到进阶 1.ES6简介及环境搭建 1.1.ECMAScript 6简介 (1)ECMAScript 6是什么 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标&#xff…

基于微信小程序的刷题考试系统设计与实现(适用于各类考试类、答题类程序)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

【IDEA】使用idea调试时查看对象集合的值

1、在实体类上添加toString方法 2、在要查看集合的地方右键View as→toString 3、View Text复制对象集合的值 4、复制map集合的值同理

[杂谈]-ESP32中的无线通信协议

ESP32中的无线通信协议 文章目录 ESP32中的无线通信协议1、ESP32 无线通信协议简介2、Bluetooth Low Energy (BLE)3、**Bluetooth Classic**4、**ESP-NOW**5、Wi-Fi(客户端-服务器通信协议)6、MQTT7、**LoRa**8、**GSM/GPRS/LTE**9、总结 ESP32是一个基于…

如何使用ArcGIS Pro直接获取道路中心线

以前使用ArcGIS获取道路中心线,需要先将面要素转换为栅格再获取中心线,现在我们可以通过ArcGIS Pro直接获取道路中心线,这里为大家介绍一下获取方法,希望能对你有所帮助。 新建地理数据库 在存储数据的文件夹上点击右键&#xff…

专栏更新情况:华为流程、产品经理、战略管理、IPD

目录 前言 01 华为流程体系入门课 CSDN学院 02 产品经理进阶课 CSDN学院 03 BLM 战略方法论进阶课 04 IPD 进阶 100 例专栏 作者简介 前言 已上线四大课程专栏更新情况: 01 华为流程体系入门课(视频图文); 02 硬件产品经…

Linux文件查找,别名,用户组综合练习

1.文件查看: 查看/etc/passwd文件的第5行 [rootserver ~]# head -5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologi…

使用YOLOv5的backbone网络识别图像天气 - P9

目录 环境步骤环境设置包引用声明一个全局的设备 数据准备收集数据集信息构建数据集在数据集中读取分类名称划分训练、测试数据集数据集划分批次 模型设计编写维持卷积前后图像大小不变的padding计算函数编写YOLOv5中使用的卷积模块编写YOLOv5中使用的Bottleneck模块编写YOLOv5…

信息安全:网络物理隔离技术原理与应用.

信息安全:网络物理隔离技术原理与应用. 随着网络攻击技术不断增强,恶意入侵内部网络的风险性也相应急剧提高。满足内外网信息及数据交换需求,又能防止网络安全事件出现的安全技术就应运而生了,这种技术称为“物理隔离技术” 基本原…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…