3.Redis数据类型(二)

news2024/11/15 20:54:04

LIST

List 是一个简单的双向链表,支持从两端进行插入和删除操作。

常用命令:

lpush/rpush/lrange

lpush 插入一个或多个元素到列表的左端。

rpush 插入一个或多个元素到列表的右端。

lrange key start stop 获取元素(前闭后闭),超过范围的话,只会返回范围内的元素,不会报错。 

127.0.0.1:6379> LPUSH list1 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> RPUSH list2 11 22 33 44 55 66
(integer) 6
127.0.0.1:6379> TYPE list1
list
127.0.0.1:6379> LRANGE list1 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> LRANGE list2 0 -1
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
6) "66"
127.0.0.1:6379> LRANGE list2 0 1
1) "11"
2) "22"

lpop/rpop

lpop key [count](删除并返回列表的左端元素)可以设置取出的元素个数

rpop key [count] 删除并返回列表的右端元素。可以设置取出的元素个数 

127.0.0.1:6379> LRANGE list1 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> LPOP list1 
"6"
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> RPOP list1
"1"
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"

127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> LPOP list1 2
1) "5"
2) "4"
127.0.0.1:6379> LRANGE list1 0 -1
1) "3"
2) "2"
lindex

根据下标获取元素 下标从0开始

127.0.0.1:6379> LRANGE list2 0 -1
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
6) "66"
127.0.0.1:6379> LINDEX list2 2
"33"
127.0.0.1:6379> LINDEX list2 0
"11"
127.0.0.1:6379> LINDEX list2 1
"22"
llen

获取列表中元素的个数

127.0.0.1:6379> LRANGE list2 0 -1
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
6) "66"
127.0.0.1:6379> LLEN list2
(integer) 6

lrem

删除指定的元素

lrem key count(要删除的数量) element(要删除的值)

count > 0 : 从左往右找,删除

count < 0 : 从右往左找,删除

count = 0 : 删除所有的

127.0.0.1:6379> LPUSH list1  1 1 1 1 2 2 2 3 3 4 5
(integer) 11
127.0.0.1:6379> LRANGE list1 0 -1
 1) "5"
 2) "4"
 3) "3"
 4) "3"
 5) "2"
 6) "2"
 7) "2"
 8) "1"
 9) "1"
10) "1"
11) "1"
127.0.0.1:6379> LREM list1 3 1
(integer) 3
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "3"
5) "2"
6) "2"
7) "2"
8) "1"
127.0.0.1:6379> LREM list1 0 3
(integer) 2
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "2"
4) "2"
5) "2"
6) "1"
ltrim 

ltrim key start stop(前闭后闭) 截取指定索引区间的元素后再赋值给key

127.0.0.1:6379> LRANGE list2 0 -1
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
6) "66"
127.0.0.1:6379> ltrim list2 2 3
OK
127.0.0.1:6379> LRANGE list2 0 -1
1) "33"
2) "44"
 rpoplpush

 rpoplpush 源列表 目的列表

移除列表的最后一个元素,并将该元素添加到另一个列表并返回

127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "2"
4) "2"
5) "2"
6) "1"
127.0.0.1:6379> LRANGE list2  0 -1
1) "33"
2) "44"
127.0.0.1:6379> RPOPLPUSH list1 list2
"1"
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "2"
4) "2"
5) "2"
127.0.0.1:6379> LRANGE list2 0 -1
1) "1"
2) "33"
3) "44"
lset
LSET key index element

设置指定位置元素的值。

127.0.0.1:6379> LRANGE list2 0 -1
1) "1"
2) "33"
3) "44"
127.0.0.1:6379> LSET list2 1 mysql
OK
127.0.0.1:6379> LRANGE list2 0 -1
1) "1"
2) "mysql"
3) "44"
linsert

linsert key <before | after> pivot element

进行插入的时候,从左往右找到第一个值进行前后插入

127.0.0.1:6379> LRANGE list2 0 -1
1) "1"
2) "mysql"
3) "44"
127.0.0.1:6379> LINSERT list2 before mysql java
(integer) 4
127.0.0.1:6379> LRANGE list2 0 -1
1) "1"
2) "java"
3) "mysql"
4) "44"

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

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

相关文章

构建可刷卡手持终端,思路与必备元素剖析-SAAS 本地化及未来之窗行业应用跨平台架构

构建可刷卡手持终端&#xff0c;思路与必备元素剖析 一、终端开发必要性 1.终端携带方便&#xff0c;适合空间小&#xff0c;外出 2.可供电&#xff0c;外带设备比较方便 3.大多数终端可以不需要网络独立使用&#xff0c;适合特殊场景 二、终端软件爱基本功能 1.便捷的终端…

Java重修笔记 第三十天 异常

异常的分类 1. Error&#xff08;错误&#xff09;&#xff1a;Java虚拟机无法解决的致命问题&#xff0c;例如StackOverflowError[栈溢出] 2. Exception&#xff08;异常&#xff09;&#xff1a;其它因编程错误或偶然的外在因素导致的一般性问题&#xff0c;可以使用针对性…

【iOS多线程(四)】线程安全+13种锁

线程安全13种锁 线程安全1. 为什么要线程安全出现线程安全的原理解决方法 2. 自旋锁和互斥锁自旋锁(Spin lock)互斥锁两种锁的加锁原理对比两种锁的应用 3. 13种锁1. OSSpinLock (已弃用&#xff09;2. os_unfair_lock3.pthread_mutex 4. NSLock5. NSRecursiveLock6. NSConditi…

C++ IOStream

IOStream 类流特性 不可赋值和复制缓冲重载了<< >> 状态位 示例 状态位操作函数coutcin getget(s,n)/get(s,n,d):getline otherif(!fs)/while(cin) operator void*()与 operator!()代码示例 File Stream open 函数 文件打开方式 文件读写 读写接口 一次读一个字符…

SpringBoot学习之EasyExcel解析合并单元格(三十九)

本解析主要采用反射来修改EasyExcel 返回的默认数据结构实现。 一、待解析表格 二、依赖 全部pom.xml文件如下,仅作参考: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLo…

LLM - 使用 HuggingFace + Ollama 部署最新大模型 (GGUF 格式 与 Llama 3.1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141028040 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Ollama…

创建一个自己的列表窗口

文章目录 背景&#xff1a;在QT的设计中&#xff0c;对于控件库提供的控件满足不了项目的需求&#xff0c;就像自定义一些控件&#xff0c;本文是自定义一个列表窗口。效果展示 一、创建基本的QT模板&#xff1a;1.创建mainwindow2.创建VerticalTextDelegate 二&#xff1a; 插…

零拷贝的发展历程

零拷贝 零拷贝是指计算机执行 IO 操作时&#xff0c;CPU 不需要将数据从一个存储区域复制到另一个存储区域&#xff0c;从而可以减少上下文切换以及 CPU的拷贝时间。它是一种I/O 操作优化技术。 传统IO的执行流程&#xff1a;传统的 IO 流程&#xff0c;包括 read 读 和 write…

2024.8.08(python)

一、搭建python环境 1、检查是否安装python [rootpython ~]# yum list installed | grep python [rootpython ~]# yum list | grep python3 2、安装python3 [rootpython ~]# yum -y install python3 安装3.12可以使用源码安装 3、查看版本信息 [rootpython ~]# python3 --vers…

C++(类和对象.下)

类型转换 先给出以下代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; class B { private:int _a1; public:B(int a){_a1 a;}void Print() {cout << _a1<< endl;} }; int main() {//实例化对象1B b(1);b.Pri…

video-retalking部署安装,在服务器Ubuntu22.04系统下

video-retalking部署安装&#xff0c;在服务器Ubuntu22.04系统下 一、ubuntu基本环境配置1.更新包列表&#xff1a;2. 安装英伟达显卡驱动2.1 使用wget在命令行下载驱动包2.2 更新软件列表和安装必要软件、依赖2.2 卸载原有驱动2.3 安装驱动2.4 安装CUDA2.5 环境变量配置 二、安…

基于YOLOv10深度学习的交通信号灯检测识别系统【python源码+Pyqt5界面+数据集+训练代码】红绿灯检测、目标检测、人工智能

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

易语言窗口1以及其它子窗口在任务栏显示的方法以及源代码

大家都知道在启动子程序中载入窗口里&#xff0c;窗口就不在任务栏中显示了 用什么办法可以解决这个问题呢 本例程教源码教你如何解决

零拷贝:原理与实现

1. 简介 I/O 或输入/输出通常意味着中央处理器 (CPU) 与外部设备&#xff08;如磁盘、鼠标、键盘等&#xff09;之间的读写。在深入研究零拷贝之前&#xff0c;有必要指出磁盘 I/O&#xff08;包括磁盘设备和其他块导向设备&#xff09;和网络 I/O 之间的区别。 磁盘 I/O 的常…

Vue3简单介绍和快速体验

目录 前言 1. Vue3介绍 1.1 Vue的两个核心功能&#xff1a; 1.2 Vue作者介绍 2. Vue3快速体验(非工程化方式) 2.1 所有代码 2.2 导入js 2.3 一些基本指令 2.4 app对象的创建和挂载 ​ 前言 在学习Vue3之前,自己已经学习过的vue2了,在学习Vue3后还是能感觉到2和3在使用…

媒体资讯视频数据采集-yt-dlp-python实际使用-下载视频

对于视频二创等一些业务场景&#xff0c;可能要采集youtube等的相关媒体视频资源&#xff0c;使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择&#xff0c;提供的命令比较丰富&#xff0c;场景比较全面yt-dlp 是一个用 Python 编写的命令行工具&#xff0c;主…

数据结构和算法|递归算法那些事(递归算法的时间复杂度和尾递归优化)

对于文章的第一部分&#xff0c;递归算法的时间复杂度&#xff0c;来自于代码随想录文章:通过一道面试题目&#xff0c;讲一讲递归算法的时间复杂度&#xff01; 对于第二节尾递归优化来自于B站&#xff1a;尾递归优化&#xff1a;你的递归调用是如何被优化的&#xff1f; 关于…

什么是占空比?什么是周期?什么是频率?

一、什么是占空比&#xff1f; 占空比(Duty Cycle)是脉冲信号中高电平持续时间与整个周期时间的比率。它通常用于描述脉冲宽度调制(PWM)信号&#xff0c;其中信号在一定频率下在高电平和低电平之间切换。 图1.1 60%占空比信号 占空比计算公式如下&#xff1a; 脉冲高电平持续时…

护眼首选,一线智联!AOC Q27E12C商用显示器,摆脱束缚高效办公!

摘要&#xff1a;QHD广色域护眼显示器&#xff0c;减负提效商务利器&#xff01; 不管是日常处理报表、制作方案还是进行文字创作、设计剪辑&#xff0c;都离不开商用显示器的身影。相较于传统显示器&#xff0c;商用显示器往往更有助于减负提效&#xff0c;提高企业生产力&am…

开源24Mhz采样逻辑分析仪-信息搜集

引用&#xff1a; 开源4Mhz采样逻辑分析仪-信息搜集&#xff1a; Sigrok逻辑分析仪软件(基于CY7C68013A)-CSDN博客 迷你逻辑分析仪TYPE C接口单片机ARM FPGA调试工具24M采样8通道_逻辑分析仪24m能测stm32吗-CSDN博客 nanoDLA逻辑分析仪上手教程-CSDN博客 基于cy7c68013的逻…