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 08 Redis
详解redis分布式锁的这些坑
May 19 Redis
浅谈redis缓存在项目中的使用
May 20 Redis
Redis 哨兵集群的实现
Jun 18 Redis
厉害!这是Redis可视化工具最全的横向评测
Jul 15 Redis
浅谈Redis位图(Bitmap)及Redis二进制中的问题
Jul 15 Redis
springboot使用Redis作缓存使用入门教程
Jul 25 Redis
redis 存储对象的方法对比分析
Aug 02 Redis
Redis Cluster 集群搭建你会吗
Aug 04 Redis
Redis RDB技术底层原理详解
Sep 04 Redis
Redis中缓存穿透/击穿/雪崩问题和解决方法
Dec 04 Redis
Redis实战高并发之扣减库存项目
Apr 14 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递归列出所有文件和目录的代码
2008/09/10 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
javascript的几种写法总结
2016/09/30 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
js模拟微博发布消息
2017/02/23 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python3.6正式版新特性预览
2016/12/15 Python
python微信公众号之关键词自动回复
2018/06/15 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
python3 mmh3安装及使用方法
2019/10/09 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
动物学专业毕业生求职信
2013/10/11 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
教育见习报告范文
2014/11/03 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
采购部年度工作总结
2015/08/13 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js