Redis 04 列表

参考源

【狂神说Java】Redis最新超详细版教程通俗易懂_哔哩哔哩_bilibili

版本

本文章基于 Redis 6.2.6


在 Redis 里面,可以把 List 当成队列阻塞队列使用。

list 实际是一个链表,左右都可以插入值。

如果 key 不存在,创建新的链表。

如果移除了所有元素,空链表也代表不存在。

在两边插入或者改动值,效率最高;操作中间元素,效率相对低一些。

应用场景:消息排队

赋值

从左插入

Lpush

将一个值或者多个值,插入列表的头部,即从左插入。

127.0.0.1:6379> Lpush list one # 从左插入一个值
(integer) 1
127.0.0.1:6379> Lpush list two three # 从左插入多个值
(integer) 3
127.0.0.1:6379> Lrange list 0 -1 # -1 即表示查询所有元素
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> Lrange list 0 1 # 查询指定下标范围元素
1) "three"
2) "two"

先进的排在后面,后进的排在前面。

从右插入

Rpush

将一个值或者多个值,插入列表的尾部,即从右插入。

127.0.0.1:6379> Rpush list four # 从右插入一个值
(integer) 4
127.0.0.1:6379> Rpush list five six # 从右插入多个值
(integer) 6
127.0.0.1:6379> Lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"
5) "five"
6) "six"

先进的排在前面,后进的排在后面。

元素前后插入值

Linsert

127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> Linsert list before two three # two 之前插入 three
(integer) 3
127.0.0.1:6379> Lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> Linsert list after two three # two 之后插入 three
(integer) 4
127.0.0.1:6379> Lrange list 0 -1
1) "three"
2) "two"
3) "three"
4) "one"

指定下标赋值

Lset

127.0.0.1:6379> Lrange list 0 -1
1) "two"
127.0.0.1:6379> Lset list 0 one # 赋值列表指定下标元素
OK
127.0.0.1:6379> Lrange list 0 -1
1) "one"

如果列表不存在或者列表指定下标不存在,赋值失败。

取值

查看列表

Lrange

127.0.0.1:6379> Lrange list 0 -1 # -1 即表示查询所有元素
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> Lrange list 0 1 # 查询指定下标范围元素
1) "three"
2) "two"

下标获取元素

Lindex

127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> Lindex list 0 # 下标从 0 开始
"two"
127.0.0.1:6379> Lindex list 1
"one"

Redis 显示的下标是从 1 开始的,实际的下标还是从 0 开始的。

列表长度

Llen

127.0.0.1:6379> Llen list
(integer) 2

列表是否存在

exists

127.0.0.1:6379> exists list
(integer) 1
127.0.0.1:6379> exists list3
(integer) 0

删除

从左移除

Lpop

127.0.0.1:6379> Lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"
127.0.0.1:6379> Lpop list # 移除最左边的元素
"three"
127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "one"
3) "four"

从右移除

Rpop

127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "one"
3) "four"
127.0.0.1:6379> Rpop list # 移除最右边的元素
"four"
127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "one"

移除元素

Lrem

127.0.0.1:6379> Lrange list 0 -1
1) "three"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> Lrem list 1 one # 移除一个指定元素
(integer) 1
127.0.0.1:6379> Lrange list 0 -1
1) "three"
2) "three"
3) "two"
127.0.0.1:6379> Lrem list 2 three # 移除两个指定元素
(integer) 2
127.0.0.1:6379> Lrange list 0 -1
1) "two"

截取

截取下标范围的元素

Ltrim

127.0.0.1:6379> Lrange list 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
127.0.0.1:6379> Ltrim list 1 2 # 截取下标 1 到 2 的元素
OK
127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "three"

移动

移除列表最后一个元素并移动到新列表中

Rpoplpush

127.0.0.1:6379> Lrange list 0 -1
1) "two"
2) "three"
127.0.0.1:6379> Rpoplpush list list2 # 移除列表最后一个元素并移动到新列表中
"three"
127.0.0.1:6379> Lrange list 0 -1 # 原来的列表
1) "two"
127.0.0.1:6379> Lrange list2 0 -1 # 新的列表
1) "three"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
01-redis-redis简介.avi,网盘文件,永久连接 02-redis-数据库应用发展历程.avi 03-redis-redis是一种Nosql数据库.avi 04-redis-redis数据库特点简介.avi 05-redis-安装redis数据库.avi 06-redis-回顾安装redis.avi 07-redis-启动redis服务.avi 08-redis-关闭redis服务.avi 09-redis-redis客户端.avi 10-redis-退出redis客户端.avi 11-redis-redis的基本知识1.avi 12-redis-redis的基本知识2.avi 13-redis-redis的基本知识3.avi 14-redis-redis的五种数据结构1.avi 15-redis-redis的五种数据结构2.avi 16-redis-redis常用指令介绍.avi 17-redis-redis中关于key的操作命令1.avi 18-redis-redis中关于key的操作命令2.avi 19-redis-redis中关于key的操作命令3.avi 20-redis-redis中关于字符串类型数据的操作命令1.avi 21-redis-redis中关于字符串类型数据的操作命令2.avi 22-redis-redis中关于列表类型数据的操作命令1.avi 23-redis-redis中关于列表类型数据的操作命令2.avi 24-redis-redis中关于集合类型数据的操作命令1.avi 25-redis-redis中关于集合类型数据的操作命令2.avi 26-redis-redis中关于集合类型数据的操作命令3.avi 27-redis-redis中关于集合类型数据的操作命令4.avi 28-redis-redis中关于哈希类型数据的操作命令1.avi 29-redis-redis中关于哈希类型数据的操作命令2.avi 30-redis-redis中关于哈希类型数据的操作命令3.avi 31-redis-redis中关于有序集合类型数据的操作命令1.avi 32-redis-redis中关于有序集合类型数据的操作命令2.avi 33-redis-redis中关于有序集合类型数据的操作命令3.avi 34-redis-回顾redis的配置文件.avi 35-redis-redis的配置文件-常规配置1.avi 36-redis-redis的配置文件-常规配置2.avi 37-redis-redis的配置文件-安全配置.avi 38-redis-redis的持久化-RDB策略.avi 39-redis-redis的持久化-AOF策略.avi 40-redis-redis的事务简介.avi 41-redis-redis事务基本操作1.avi 42-redis-redis事务基本操作2.avi 43-redis-redis事务基本操作3.avi 44-redis-redis事务小结.avi 45-redis-redis消息的发布与订阅.avi 46-redis-redis的主从复制-提供三台redis服务.avi 47-redis-redis的主从复制-启动三台redis服务.avi 48-redis-redis的主从复制-设置主从关系、全量复制、增量复制.avi 49-redis-redis的主从复制-读写分离、主机宕机.avi 50-redis-redis的主从复制-从机宕机.avi 51-redis-redis的主从复制-主机宕机、从机上位.avi 52-redis-redis的主从复制-主机恢复、天堂变地狱.avi 53-redis-redis的哨兵模式.avi 54-redis-Jedis的使用.mp4 55-redis-redis的客户端连接工具.avi

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天航星

感谢你的鼓励和认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值