Redis基本数据类型List常用操作命令


Posted in Redis onJune 01, 2022

Redis数据类型List操作

在redis里,可以把list巧妙的运用成 栈、队列、阻塞队列等。

一、push 插入元素

1. lpush,在头部插入

将一个值或者多个值,插入到列表的头部。

lpush list onelpush list twolpush list three

Redis基本数据类型List常用操作命令

使用lpush,这里的l可以看成left,也就是在左边插入,所以目前list是这样的[three, two, one]

2. rpush,在尾部插入

接下来,使用rpush,在右边也就是在列表尾部插入元素。

rpush list right1 right2

此时,list是这样的[three, two, one, right1, right2]。用lrange list 0 -1来获取下:

Redis基本数据类型List常用操作命令

二、range 通过区间获取元素

可以想象成python里的range(),通过传入开始和结束的下标,获取元素。

lrange list 1 4

Redis基本数据类型List常用操作命令

三、pop 移除元素

既然上面可以左右的添加操作,那么移除自然也有左右之分了。

移除操作,返回的是被移除的元素。

1. lpop 左边移除

lpop list

Redis基本数据类型List常用操作命令

2. rpop 右边移除

rpop list

Redis基本数据类型List常用操作命令

四、lindex 通过下标获取元素

lindex list 1

Redis基本数据类型List常用操作命令

五、llen 获取list长度

返回列表的长度。

llen list

Redis基本数据类型List常用操作命令

六、lrem 移除指定元素

可以指定移除元素,并且指定数量。

lrem list 2 yi222

现在list里有3个yi222,我要移除2个。

Redis基本数据类型List常用操作命令

七、ltrim 修剪

通过ltrim只保留指定的部分,去掉其他的部分,被截取的list发生改变。

ltrim list 1 4

这里下标从1到4的都保留,其他都被去掉了。

Redis基本数据类型List常用操作命令

八、组合命令 rpoplpush 移除并添加

这是组合命令,移除list最后一个元素,并且将它添加到另一个list。

rpoplpush list list2

这里list是原列表,list2是目标列表,目标列表不存在会去创建。

Redis基本数据类型List常用操作命令

九、exists 判断key 是否存在

exists list

存在返回1,不存在就返回0。

Redis基本数据类型List常用操作命令

十、lset,设置指定下标的值

lset list 1 test

当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。

Redis基本数据类型List常用操作命令

十一、linsert,指定位置之前/之后插入值

之前

linsert list before test before_test

这是在元素test之前,插入元素before_test

Redis基本数据类型List常用操作命令

之后

linsert list after test after_test

这是在元素test之后,插入元素after_test

Redis基本数据类型List常用操作命令

十二、小结

从上述list的操作中,可以观察出它的一些特点:

它实际上是一个链表,节点的左右都方便插入。如果key不存在,会创建新的链表。如果key存在,就新增元素。如果移除了所有的值,就是空链表,也就是不存在。在两边插入或者改动值,效率最高。中间的元素操作,效率相对低。

list在实际中可以灵活运用,比如队列,栈,都能用list来实现。

以上就是Redis数据类型List常用操作命令的详细内容,更多关于Redis数据类型List操作命令的资料请关注三水点靠木其它相关文章!


Tags in this post...

Redis 相关文章推荐
Redis延迟队列和分布式延迟队列的简答实现
May 13 Redis
浅谈Redis主从复制以及主从复制原理
May 29 Redis
在redisCluster中模糊获取key方式
Jul 09 Redis
redis 存储对象的方法对比分析
Aug 02 Redis
Redis如何实现分布式锁
Aug 23 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
分布式Redis Cluster集群搭建与Redis基本用法
Feb 24 Redis
分布式架构Redis中有哪些数据结构及底层实现原理
Mar 13 Redis
Redis基本数据类型Set常用操作命令
Jun 01 Redis
一文教你快速生成MySQL数据库关系图
Jun 28 Redis
Redis+AOP+自定义注解实现限流
Jun 28 Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 Redis
Redis基本数据类型Set常用操作命令
Jun 01 #Redis
Redis基本数据类型哈希Hash常用操作命令
Jun 01 #Redis
Redis基本数据类型Zset有序集合常用操作
Jun 01 #Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 #Redis
Redis特殊数据类型HyperLogLog基数统计算法讲解
Jun 01 #Redis
Redis特殊数据类型bitmap位图
Jun 01 #Redis
浅谈Redis的事件驱动模型
May 30 #Redis
You might like
高亮度显示php源代码
2006/10/09 PHP
文章推荐系统(三)
2006/10/09 PHP
留言板翻页的实现详解
2006/10/09 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
ant design实现圈选功能
2019/12/17 Javascript
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
PyTorch中的Variable变量详解
2020/01/07 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
python代码实现图书管理系统
2020/11/30 Python
用Python 执行cmd命令
2020/12/18 Python
python实现三种随机请求头方式
2021/01/05 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
二手房买卖协议书
2014/04/10 职场文书
保护环境演讲稿
2014/05/10 职场文书
高中教师考核方案
2014/05/18 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python