redis的list类型

Redis中的List类型可类比Java的LinkedList,支持双向检索,插入和删除速度快。常用命令包括LPUSH(左插入)、RPUSH(右插入)、LPOP(左移除)、RPOP(右移除)、LRANGE(获取指定范围元素)。此外,BLPOP和BRPOP用于模拟阻塞队列,当列表为空时可设置等待时间。
摘要由CSDN通过智能技术生成

介绍

redis中的list类型与java中的LinkedList类似,可以看做是一个双向链表结构.既可以支持正向检索也可以支持反向检索
特征也与LinkedList类似:

  • 有序
  • 元素可以重复
  • 插入和删除快(所有的链表都快)
  • 查询速度一般

常用命令

  • LPUSH users a b c: 向列表!!#0000ff 左侧!!插入1个或多个元素
左侧插入
左侧插入
左侧插入
LPUSH
c
b
a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JvBXc9Pd-1681144188325)(null)]

  • RPUSH users e f g: 向列表!!#0000ff 右侧!!插入1个或多个元素
右侧插入
右侧插入
右侧插入
右侧插入
RPUSH
g
f
e
a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zgOJXnUR-1681144189327)(null)]

  • LPOP users: 移除并返回列表!!#ff0000 左侧!!的第1个元素,没有则返回nil
192.168.2.14:26003> LPOP users
"c"
  • RPOP users: 移除并返回列表!!#ff0000 右侧!!的第1个元素,没有则返回nil
192.168.2.14:26003> RPOP users 
"g"
  • LRANGE users 0 2: 返回1段索引范围内的所有元素,包含索引的开始和结束
192.168.2.14:26003> LRANGE users 0 2
1) "b"
2) "a"
3) "e"
  • BLPOP users 10: 与LPOP类似,这里加了个10秒,如果users里没有元素会等待10秒,在等待的这10秒内新增了元素,会把元素返回且移除,如果10后任然没有元素则返回nil,可以开2个终端测试,1个等待,1个添加元素
192.168.2.14:26003> BLPOP users  10                        
(nil)                                                      
(10.04s)
  • BRPOP users 100: 与BLPOP同理

思考

  • 如何利用List结构模拟一个栈
    • 入口和出口是同一边
    • LPUSH和LPOP结合,RPUSH和RPOP结合
  • 如何利用List结构模拟一个队列
    • 入口和出口在两头
    • LPUSH和RPOP结合,RPUSH和LPOP结合
  • 如何利用List结构模拟一阻塞队列
    • 入口和出口在两头
    • LPUSH和BRPOP结合,RPUSH和BLPOP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值