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 相关文章推荐
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
Redis IP地址的绑定的实现
May 08 Redis
比较几种Redis集群方案
Jun 21 Redis
Redis 彻底禁用RDB持久化操作
Jul 09 Redis
Redis读写分离搭建的完整步骤
Sep 14 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
高并发下Redis如何保持数据一致性(避免读后写)
Mar 18 Redis
Redis高并发缓存架构性能优化
May 15 Redis
Redis入门基础常用操作命令整理
Jun 01 Redis
Redis实战之Lettuce的使用技巧详解
Dec 24 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
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
PHP编写简单的App接口
2016/08/28 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
vue2.x select2 指令封装详解
2017/10/12 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
儿童python练习实例
2018/05/27 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
python画双y轴图像的示例代码
2019/07/07 Python
pytorch forward两个参数实例
2020/01/17 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
Order by的几种用法
2013/06/16 面试题
大学生护理专业自荐信
2013/10/03 职场文书
运动会领导邀请函
2014/01/10 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
成品仓管员岗位职责
2015/04/01 职场文书