Redis基本类型之List类型


Redis基本类型之List类型

一、概述

1、简介

  • Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索
  • push:添加
  • pop:删除

2、特征

  • 有序
  • 元素可以重复
  • 插入和删除快
  • 查询速度一般

常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。

二、List类型的常用命令

命令作用
lpush向列表左侧插入一个或多个元素
lpop移除并返回列表左侧的第一个元素,没有则返回null
rpush向列表右侧插入一个或多个元素
rpop移除并返回列表右侧的第一个元素
lrange返回一段角标范围内的所有元素
blpop与 lpop 类似,只不过在没有元素时等待指定时间,而不是直接返回nil
brpop与 rpop 类似,只不过在没有元素时等待指定时间,而不是直接返回nil

三、操作案例

1、lpush(左侧插入一个或多个)

  • lpush:向列表左侧插入一个或多个元素
192.168.8.137:6379> LPUSH users 1 2 
(integer) 2

在这里插入图片描述

2、lpop(左侧移除)

  • lpop:移除并返回列表左侧的第一个元素,没有则返回null
# 会把2移除
192.168.8.137:6379> LPOP users 1
1) "2"

在这里插入图片描述

3、rpush(右侧插入一个或多个)

  • rpush:向列表右侧插入一个或多个元素
192.168.8.137:6379> RPUSH users 4 5 6
(integer) 5

在这里插入图片描述

4、rpop(右侧移除)

  • rpop:移除并返回列表右侧的第一个元素
192.168.246.128:6379> RPOP users 1
1) "6"

在这里插入图片描述

5、lrange(获取角标元素)

  • lrange:返回一段角标范围内的所有元素
192.168.246.128:6379> LRANGE users 1 2
1) "4"
2) "5"

在这里插入图片描述

6、blpop (左侧移除)

  • blpop:与 lpop 类似,只不过在没有元素时等待指定时间,而不是直接返回nil
192.168.246.128:6379> BLPOP users 1
1) "users"
2) "1"

在这里插入图片描述

7、brpop(右侧移除)

  • brpop:与 rpop 类似,只不过在没有元素时等待指定时间,而不是直接返回nil
192.168.246.128:6379> BRPOP users 2
1) "users"
2) "5"

在这里插入图片描述

8、lpush 与 blpop 阻塞式获取

  • 多开一个命令窗口,阻塞式获取
192.168.8.137:6379> LPUSH users2 jack
(integer) 1
192.168.8.137:6379> BLPOP users2 2
1) "users2"
2) "jack"

在这里插入图片描述

四、问题

1、如何利用List结构模拟一个栈?

  • 入口和出口在同一边

2、如何利用List结构模拟一个队列?

  • 入口和出口在不同边

3、如何利用List模拟一个阻塞队列?

  • 入口和出口在不同边
  • 出队时采用BLPOP或BRPOP
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值