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 相关文章推荐
为Java项目添加Redis缓存的方法
May 18 Redis
详解Redis瘦身指南
May 26 Redis
Django使用redis配置缓存的方法
Jun 01 Redis
了解Redis常见应用场景
Jun 23 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
使用redis生成唯一编号及原理示例详解
Sep 15 Redis
分布式Redis Cluster集群搭建与Redis基本用法
Feb 24 Redis
Redis 哨兵机制及配置实现
Mar 25 Redis
Redis基本数据类型List常用操作命令
Jun 01 Redis
使用Redis实现分布式锁的方法
Jun 16 Redis
redis lua限流算法实现示例
Jul 15 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/12/06 PHP
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
python有几个版本
2020/06/17 Python
python打开音乐文件的实例方法
2020/07/21 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
高一地理教学反思
2014/01/18 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android