Redis数据类型之列表List

news2024/10/6 2:21:35

Redis数据类型之列表List

在这里插入图片描述

list中的命令如下:

  1. lpush:从左边插入,插入的数据是倒叙
    LPUSH key value1 [value2]
    将一个或多个值插入到列表头部
    在这里插入图片描述
    lpush k1 a b c d e f ; 输出结果 f e d c b a
    lpop k1; 输出 f
    从左边pop弹出时先弹出的是f,因为从左边push的时候先放a,然后在a的左边再放b,所以顺序是 f e d c b a,导致从左边弹出的时候先弹出 f ,下面介绍LPOP的命令

这里可以看出来list列表有栈的特性:先进后出FILO

  1. rpush:从尾部添加,正序添加 ,rpush k2 a b c d e f --输出结果 a b c d e f
    RPUSH key value1 [value2]
    在列表中添加一个或多个值到列表尾部
    在这里插入图片描述
    Rpush k2 a b c d e f ; 输出结果a b c d e f
    Lpop k2; 输出 a
    这里用到了反向命令,LPOP,没有用到RPOP。这样可以实现队列特性
    这里可以看出来list列表有队列的特性:先进先出FIFO

  2. LPOP:相当于从左往右开始获取一个元素。既第一个元素
    LPOP key
    移出并获取列表的第一个元素
    在这里插入图片描述
    因为k1 的顺序是f e d c b a

  3. RPOP:相当于从右往左开始获取一个元素。既获取最后一个元素
    RPOP key
    移除列表的最后一个元素,返回值为移除的元素。
    在这里插入图片描述
    因为k2的顺序是 a b c d e f

  4. lindex:
    LINDEX key index
    通过索引获取列表中的元素

  5. linsert:这里的pivot 不是索引,是列表中元素的值,
    LINSERT key BEFORE|AFTER pivot value
    在列表的元素前或者后插入元素
    在这里插入图片描述
    pivot 表示列表中的值,不是索引。而且他会从左开始找,找到第一个出现的元素在他后面设置值,因为我用的是after 所以是在a后面

  6. Llen
    LLEN key
    获取列表长度

  7. Lrem:count表示移除几个元素,从左往右数出现的count个value移除。
    LREM key count value
    移除列表元素

  8. Lset:给指定位置设置值
    LSET key index value
    通过索引设置列表元素的值

  9. Ltrim:只保留strat-end之间的数,其他全去掉。小于start,大于end的。开区间
    LTRIM key start stop
    对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
    从这里可以看出列表list还有数组的特性

  10. BLpop:表示没有元素则阻塞等待,有则从左边开始弹出1个。而且他有顺序。比如第一个客户端执行这个命令等待中,第二个客户端也执行同样命令等待中,一旦里面有值,则第一个客户端先弹出,第二个没有任何反应,知道再有一个值进入是,第二个才会弹出
    BLPOP key1 [key2 ] timeout
    移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

  11. BRpop:和上面一样,只不过弹出最后一个
    BRPOP key1 [key2 ] timeout
    移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

这可以实现一个功能就是消息队列,只不过是单波队列,

第一张图是对整个list的总结

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

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

相关文章

ESD监控系统、防静电闸机的应用案例

ESD监控系统和防静电闸机是在电子厂、医药厂、半导体厂、航空航天等领域广泛应用的静电措施,可以有效地保护生产线上的产品安全,提高产品质量和可靠性。 近日一家电子元器件公司在其生产线上安装了防静电监控系统、ESD防静电闸机,用于控制人员…

Vue之基本使用

一、前端的发展史 1.HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览器中查看 2.Ajax的出现 -> 后台发送异步请求,…

今天是六一儿童节~身为我们班的信息担当的我为我们班同学准备了一个小惊喜,你确定不来看看吗(turtle库实现:送给同学们一朵小红花)

目录 一.实现思路 二.花朵的实现方法 三.花朵的茎实现方法 四.画出第一片叶子的方法 五.画出第二片叶子的方法 六.如何设置页面主体 结尾 今天呢,也是一年一度的六一儿童节(虽然各位大佬可能不过,但是我还是要过的)&#xf…

JMeter性能测试零基础完整入门版,视频教程加源码免费看

目录 1. Jmeter简介 2. Jmeter安装 2.1 JDK安装 2.2 JMeter安装 3. 测试实例 3.2 请求参数 3.3 返回结果 4. JMeter脚本编写 4.1 添加线程组 4.2 添加HTTP请求 4.3 添加察看结果树 4.4 添加用户自定义变量 4.5 添加断言 4.6 添加断言结果 4.7 添加聚合报告 5. 执…

Spring Boot如何实现微服务架构中的API网关?

Spring Boot如何实现微服务架构中的API网关? 随着微服务架构的流行,越来越多的企业开始构建自己的微服务系统。在这种情况下,API网关变得尤为重要。API网关是微服务架构中的一个组件,它可以帮助我们管理和路由所有的API请求。Spr…

【LeetCode热题100】打卡第10天:删除链表倒数第N个节点

文章目录 删除链表倒数第N个节点⛅前言🔒题目🔑题解 删除链表倒数第N个节点 ⛅前言 大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目&a…

8. 何为ECC

非对称加密 在我们认知里面,通常说到非对称加密,就会弹出2个词,RSA和ECC,做过对称加密的都非常清楚,RSA其实就是模指运算。用公钥来加密,私钥来解密;私钥签名,公钥验签。但是提到EC…

【数据结构】链表 linked list

一、什么是链表 零散的内存空间存储,由元素和指针组成 二、常用操作 1.原理 access:通过next指针遍历 时间复杂度:O(N) search:通过next指针遍历 时间复杂度:O(N) insert:找个新的内存空间存储新元素…

学习HCIP的day.10

十、对BGP一些情况的总结: 1、路由条目不优特殊情况: 在BGP协议中,存在一种无法优秀的路由条目;假设R4路由表中存在一条非BGP产生的到达5.5.5.5的路由条目,且该条目用于R4与R5建立BGP邻居关系;那么之后R5…

【Linux网络】搭建LNMP架构

搭建LNMP架构 一、编译安装MySQL服务二、安装Nginx服务三、安装配置PHP解析环境四、部署Discuz社区论坛Web应用五、部署博客论坛应用六fpm进程优化 一、编译安装MySQL服务 1.安装MySQL环境依赖包 yum -y install gcc gcc-c ncurses ncurses-devel bison cmake2、创建运行用户 u…

地震勘探基础(三)之地震波的时距曲线

时距曲线 在反射波地震勘探中,一般是在地面激发地面接收,激发点到接受点的距离称为炮间距(offset),用 x x x表示。如果炮间距为0,称为自激自收。 单道接收:激发一次只在一个位置上接收地震波。…

在线ps网页版推荐,让你摆脱安装包的烦恼

在设计领域,Photoshop的地位多年来一直是不可动摇的,其强大的功能可以毫不夸张地说:只有你想不到的,没有PS做不到的。但强大如PS,也有自己的小局限性:处理矢量图相对较弱,更难掌握。今天&#x…

微信小程序——监听页面滑动(一)onPageScroll

微信小程序——手把手教你学会监听页面滑动 知识回调(不懂就看这儿!)场景复现核心干货如何进行页面监听了解onPageScroll实际使用onPageScroll 知识回调(不懂就看这儿!) 知识专栏专栏链接微信小程序专栏ht…

栈和队列高频面试题(必刷): 用队列实现栈 用栈实现队列 实现循环队列 括号匹配

文章目录 用队列实现栈用栈实现队列实现循环队列括号匹配 用队列实现栈 题目描述: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。 实现 MySt…

新项目 使用 IDEA 搭建后端环境 及 搭建是可能遇到的 问题 及解决方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 新项目 使用 IDEA 搭建后端环境 及 搭建是可能遇到的 问题 及解决方法 前言 提示:这里可以添加本文要记录的大概内容: 新项目 使用 IDEA 搭建后端环…

【群智能算法改进】一种改进的沙丘猫群优化算法 改进沙丘猫群算法 改进SCSO[2]【Matlab代码#36】

文章目录 【获取资源请见文章第5节:资源获取】1. 原始沙丘猫群优化算法2. 改进沙丘猫群算法2.1 非线性自适应参数2.2 Cauchy变异策略2.3 最优邻域扰动策略 3. 部分代码展示4. 仿真结果展示5. 资源获取6. 参考文献 【获取资源请见文章第5节:资源获取】 1.…

华为OD机试真题B卷 Java 实现【光伏场地建设规划】,附详细解题思路

一、题目描述 祖国西北部有一片大片荒地,其中零星的分布着一些湖泊,保护区,矿区;整体上常年光照良好,但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站,生产清洁能源。对每平方公里的土…

主动打包、高效管理的主题工具:逐浪HMS主题大师1.5-即速推送、华为小组件缓存优化、锁屏提取、资源审计、技术秘笈,移动主题设计利器

主动打包、高效管理的主题工具:逐浪HMS主题大师1.5-即速推送、华为小组件缓存优化、锁屏提取、资源审计、技术秘笈,移动主题设计利器 主动打包:逐浪HMS主题大师1.3-即速推送、华为小组件缓存优化、锁屏提取、资源审计、技术秘笈,移…

【经验分享】uniapp项目GIT如何忽略unpackage文件

最近的uniapp项目踩了个坑,就是建完项目,提交代码后,运行发布微信小程序,生成了unpackage里的build文件,这个时候提交总是提交一堆编译后的文件,甚至造成冲突。即使在.gitignore文件中写入忽略unpackage目录…

C++ 小区物业管理系统(QT图形界面)

目录 一、项目介绍 二、项目展示 三、源码分享 一、项目介绍 小区物业管理系统 (一)课题内客 该系统要求建立某小区物业管理系绕,并具有排序﹑查找﹒计算﹑显示等功能,通过此课题,熟练掌握文件﹐指针的各种操作,以及一些算法思…