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实现分布式锁的方法(lua脚本版)
May 12 Redis
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
在redisCluster中模糊获取key方式
Jul 09 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
缓存替换策略及应用(以Redis、InnoDB为例)
Jul 25 Redis
Redis Cluster 集群搭建你会吗
Aug 04 Redis
Redis三种集群模式详解
Oct 05 Redis
SpringBoot集成Redis的思路详解
Oct 16 Redis
关于SpringBoot 使用 Redis 分布式锁解决并发问题
Nov 17 Redis
redis数据结构之压缩列表
Mar 21 Redis
源码分析Redis中 set 和 sorted set 的使用方法
Mar 22 Redis
Redis批量生成数据的实现
Jun 05 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小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php实现分页显示
2015/11/03 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
python中的数据结构比较
2019/05/13 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
团代会主持词
2014/04/02 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
教务处干事工作总结
2015/08/14 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
技术入股协议书
2016/03/22 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers