admin管理员组文章数量:1037775
【redis】list类型:基本命令(上)
插入和弹出操作
列表(list
)相当于数组或者顺序表
- 约定最左侧元素下标为
0
Redis
的下标支持负数下标(从后往前数)list
内部的结果(编码方式),并非是一个简单的数组,而是更接近于“双端队列”(deque
)
获取和删除等操作
列标中的元素是“有序“的,有序的含义,要根据上下文区分
- 有的时候,指的是“升序”,“降序”
- 有的时候,指的是,顺序很关键。如果把元素位置颠倒,顺序调换,此时得到的新的
list
和之前的list
是不等价的
允许有重复元素
- 像
hash
这样的类型,field
是不能重复的 - 因为当前的
list
,头和尾都能高效的插入删除元素,就可以把这个list
当做一个栈/队列来使用了
Redis
有一个典型的应用场景,就是作为“消息队列”
- 最早的时候,就是通过
list
类型来实现的 - 后来
Redis
又提供了一个stream
类型
LPUSH/RPUSH
将一个或者多个元素从左/右侧放入(头/尾插)到 list
中
- 依次头插
语法:
代码语言:javascript代码运行次数:0运行复制LPUSH key element [element ...]
- 时间复杂度:
,插入多个元素为:
,
为插入元素个数
- 返回值:插入后
list
的长度 - 如果
key
已经存在,并且key
对应的value
类型,不是list
,此时lpush
命令就要报错
LRANGE
获取从 start
到 end
区间的所有元素,左闭右闭
语法:
代码语言:javascript代码运行次数:0运行复制LRANGE key start stop
- 时间复杂度:
- 返回值:指定区间的元素
当在
Redis
中下标超出范围的时候,Redis
会直接尽可能的获取到给定区间的元素。如果给定区间非法,比如超出小标,就会尽可能的获取对应的内容
LPUSHX/RPUSHX
当 key
存在时,将一个或者多个元素从左/右侧放入(头/尾插)到 list
中。不存在,就直接返回
语法:
代码语言:javascript代码运行次数:0运行复制LPUSHX key element [element ...]
- 时间复杂度:
,插入多个元素为:
,
为插入元素个数
- 返回值:插入后
list
的长度
LPOP/RPOP
从 list
左/右侧取出元素(即头/尾删)
语法:
代码语言:javascript代码运行次数:0运行复制LPOP key
- 时间复杂度:
- 返回值:取出的元素或者
nil
LINDEX
获取从左数第 index
位置的元素
语法:
代码语言:javascript代码运行次数:0运行复制LINDEX key index
- 时间复杂度:
- 返回值:取出的元素或者
nil
LINSERT
在特定位置插入元素
语法:
代码语言:javascript代码运行次数:0运行复制LINSERT key <BEFORE | AFTER> pivot element
- 时间复杂度:
- 返回值:插入后的
list
长度
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-13,如有侵权请联系 cloudcommunity@tencent 删除redis队列数组语法list万一插入元素的时候,基准值有多个,就找第一个基准值
【redis】list类型:基本命令(上)
插入和弹出操作
列表(list
)相当于数组或者顺序表
- 约定最左侧元素下标为
0
Redis
的下标支持负数下标(从后往前数)list
内部的结果(编码方式),并非是一个简单的数组,而是更接近于“双端队列”(deque
)
获取和删除等操作
列标中的元素是“有序“的,有序的含义,要根据上下文区分
- 有的时候,指的是“升序”,“降序”
- 有的时候,指的是,顺序很关键。如果把元素位置颠倒,顺序调换,此时得到的新的
list
和之前的list
是不等价的
允许有重复元素
- 像
hash
这样的类型,field
是不能重复的 - 因为当前的
list
,头和尾都能高效的插入删除元素,就可以把这个list
当做一个栈/队列来使用了
Redis
有一个典型的应用场景,就是作为“消息队列”
- 最早的时候,就是通过
list
类型来实现的 - 后来
Redis
又提供了一个stream
类型
LPUSH/RPUSH
将一个或者多个元素从左/右侧放入(头/尾插)到 list
中
- 依次头插
语法:
代码语言:javascript代码运行次数:0运行复制LPUSH key element [element ...]
- 时间复杂度:
,插入多个元素为:
,
为插入元素个数
- 返回值:插入后
list
的长度 - 如果
key
已经存在,并且key
对应的value
类型,不是list
,此时lpush
命令就要报错
LRANGE
获取从 start
到 end
区间的所有元素,左闭右闭
语法:
代码语言:javascript代码运行次数:0运行复制LRANGE key start stop
- 时间复杂度:
- 返回值:指定区间的元素
当在
Redis
中下标超出范围的时候,Redis
会直接尽可能的获取到给定区间的元素。如果给定区间非法,比如超出小标,就会尽可能的获取对应的内容
LPUSHX/RPUSHX
当 key
存在时,将一个或者多个元素从左/右侧放入(头/尾插)到 list
中。不存在,就直接返回
语法:
代码语言:javascript代码运行次数:0运行复制LPUSHX key element [element ...]
- 时间复杂度:
,插入多个元素为:
,
为插入元素个数
- 返回值:插入后
list
的长度
LPOP/RPOP
从 list
左/右侧取出元素(即头/尾删)
语法:
代码语言:javascript代码运行次数:0运行复制LPOP key
- 时间复杂度:
- 返回值:取出的元素或者
nil
LINDEX
获取从左数第 index
位置的元素
语法:
代码语言:javascript代码运行次数:0运行复制LINDEX key index
- 时间复杂度:
- 返回值:取出的元素或者
nil
LINSERT
在特定位置插入元素
语法:
代码语言:javascript代码运行次数:0运行复制LINSERT key <BEFORE | AFTER> pivot element
- 时间复杂度:
- 返回值:插入后的
list
长度
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-13,如有侵权请联系 cloudcommunity@tencent 删除redis队列数组语法list万一插入元素的时候,基准值有多个,就找第一个基准值
本文标签: redislist类型基本命令(上)
版权声明:本文标题:【redis】list类型:基本命令(上) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748297255a2281679.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论