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.mzph.cn/news/93058.shtml

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

相关文章

MySQL约束

文章目录 简单介绍主键约束添加单列主键多列主键删除主键 自增长约束(auto_increment)语法:指定自增字段初始值 非空约束唯一约束(unique)默认约束(default)零填充约束(zerofill) 简单介绍 概念:表中数据的约束条件 作用:表在设计的时候加入…

[学习笔记]ARXML - Data Format

参考AUTOSAR文档: https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdfhttps://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdf 编码 arxml只允许使用UTF-8编码&#xff…

【Java 进阶篇】JDBC ResultSet 遍历结果集详解

在Java数据库编程中,经常需要执行SQL查询并处理查询结果。ResultSet(结果集)是Java JDBC中用于表示查询结果的关键类之一。通过遍历ResultSet,我们可以访问和操作从数据库中检索的数据。本文将详细介绍如何使用JDBC来遍历ResultSe…

ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中,opencv_contrib解压后的多个文件夹复制到opencv内、合并 2.安装 参考博文: https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/87197806 其中 (1)cmake前…

2023年中国金刚石工具产量、需求量、市场规模及行业细分产品规模[图]

金刚石工具就是以金刚石为增强体,以金属或聚合物为基体的一类功能复合材料。金刚石工具已经成为当今公认的、唯一有效的硬脆非金属材料加工工具,比如,只有用金刚石刀具能加工超硬的陶瓷,尚无其他代用品。金刚石工具根据其用途的不…

【VIM】初步认识VIM-2

2-6 Vim 如何搜索替换_哔哩哔哩_bilibili 1-6行将self改成this 精确替换quack单词为交

湖南特色农产品销售系统APP /基于android的农产品销售系统/基于android的购物系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的APP应运而生,各行各业相继进入信息管理时代&#x…

【QT】自定义组件ui类添加到主ui界面方法

1.添加自定义组件到项目中 add new选择如下 写好类方法,确定即可 2.将新创建的ui类加入到主ui界面 选中新创建ui类的父类空块,右键选择提升为 选择并添加新创建的类

如何搭建团队知识库?试试新的工具和方法吧!

知识本身没有价值,只有被利用的知识才能发挥作用。我们经常见到有许多“宏伟”的团队知识库,但是从来没有人去用…… 搭建团队知识库 没有人用的团队知识库存在的问题是“我们知道所有问题的答案,就是不知道问题是什么”。如何建立团队知识库…

NLP中token总结

Token 可以被理解为文本中的最小单位。在英文中,一个 token 可以是一个单词,也可以是一个标点符号。在中文中,通常以字或词作为 token。ChatGPT 将输入文本拆分成一个个 token,使模型能够对其进行处理和理解 在自然语言处理&#…

vertx的学习总结2

一、什么是verticle verticle是vertx的基本单元,其作用就是封装用于处理事件的技术功能单元 (如果不能理解,到后面的实战就可以理解了) 二、写一个verticle 1. 引入依赖(这里用的是gradle,不会吧&#…

18scala笔记

Scala2.12 视频地址 1 入门 1.1 发展历史 … 1.2 Scala 和 Java Scala Java 编写代码使用scalac编译成.class字节码文件scala .class文件 执行代码 1.3 特点 1.4 安装 视频地址 注意配置好环境变量 简单代码 1.5 编译文件 编译scala文件会产生两个.class文件 使用java…

【初始Linux】上

初始Linux上 一、Linux背景1.1 UNIX发展的历史1.2 UNIX发展的历史 二、开源三、官网Linux官网 四、企业应用现状五、发行版本六、 os概念,定位 本博客简介 初始Linux操作系统初识shell命令 ,了解若干背景知识。使用常用Linux命令了解Linux权限概念与思想,能深度理解…

Java | Maven(知识点查询)

文章目录 Maven知识速查1. Maven概述2. Maven的作用3. Maven的下载4. Maven的环境配置5. Maven 的基础组成5.1 Maven仓库5.1.1 本地仓库配置:5.1.2 中央仓库配置:5.1.3 镜像仓库配置 5.2 Maven坐标 6. Maven项目6.1 手工创建Maven项目6.2 自动构建项目 7…

安卓 kuaishou 设备did和egid 学习分析

did和egid注册 接口 https://gdfp.ksapisrv.com/rest/infra/gdfp/report/kuaishou/android did 是本地生成的16进制 或者 获取的 android_id public static final Random f16237a new Random(System.currentTimeMillis()); public static long m19668a() { return f1623…

GraphQL全面深度讲解

目录 一、GraphQL 是什么 二、GraphQL 规范 数据模型 字段 参数 三、运行示例 四、优势和劣势 优势 劣势 一、GraphQL 是什么 GraphQL 是一种用于 API 的查询语言,也是一个基于服务端的运行引擎。 GraphQL 提供了一套完整的规范和描述用于查询 API&#xf…

【图像处理】【应用程序设计】加载,编辑和保存图像数据、图像分割、色度键控研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

WebGL笔记:绘制矩形面的几种方式以及封装封装多边形对象来绘制不同图形

绘制矩形面 可以绘制的面只有三角面,要绘制矩形面的话,只能用两个三角形去拼 1 ) 使用 三角带 TRIANGLE_STRIP 绘制矩形 回顾一下之前的规律: 第一个三角形:v0>v1>v2第偶数个三角形:以上一个三角形…

在移动固态硬盘上安装Ubuntu系统和ROS2

目录 原视频准备烧录 原视频 b站鱼香ros 准备 1.在某宝上买一个usb移动固态硬盘或固态U盘,至少64G 2.下载鱼香ros烧录工具 下载第二个就行了,不然某网盘的速度下载全部要一天 下载后,选择FishROS2OS制作工具压缩包,进行解压…

【vue3】toRef与toRefs的使用,toRef与ref的区别

假期第四篇,对于基础的知识点,我感觉自己还是很薄弱的。 趁着假期,再去复习一遍 1、toRef与toRefs 创建一个ref对象,其value值指向另一个对象中的某个属性 语法:const name toRef(person,‘name’&#xf…