07 Redis List类型操作与使用场景

Redis List类型操作与使用场景

一、List类型操作

​ Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。特征也与LinkedList类似:

​ 有序

​ 元素可以重复

​ 插入和删除快

​ 查询速度一般

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

​ List的常见命令有:

​ LPUSH key element … :向列表左侧插入一个或多个元素

# 插入多个元素
127.0.0.1:6379> lpush user:hobby read run
2

​ LRANGE key star end:返回一段角标范围内的所有元素

# 返回一段角标范围内的所有元素
127.0.0.1:6379> lrange user:hobby 0 1
run
read

​ LPOP key:移除并返回列表左侧的第一个元素,没有则返回nil

# 移除左侧的第一个元素
127.0.0.1:6379> lpop user:hobby 
run

​ RPUSH key element … :向列表右侧插入一个或多个元素

# 插入多个元素
127.0.0.1:6379> rpush user:hobby study ball
3

# 查询
127.0.0.1:6379> lrange user:hobby 0 2
read
study
ball

​ RPOP key:移除并返回列表右侧的第一个元素

# 移除并返回列表右侧的第一个元素
127.0.0.1:6379> rpop user:hobby
ball

​ BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

# 设置元素过期
127.0.0.1:6379> blpop user:hobby 20
user:hobby
read

# 查询是否过期
127.0.0.1:6379> ttl read
-2

​ LINSET:在指定元素的前边或后边添加一个元素

# 在study之前添加run
127.0.0.1:6379> linsert user:hobby before study run
2

# 在study后,创建game
127.0.0.1:6379> linsert user:hobby after study game
3

# 查询是否添加成功
127.0.0.1:6379> lrange user:hobby 0 2
run
study
game

​ LTRIM:截取指定下标内的元素,其他元素删除

# 截取指定下标内的元素,其他元素删除
127.0.0.1:6379> ltrim user:hobby 1 2
OK

# 查询
127.0.0.1:6379> lrange user:hobby 0 2
study
game

二、使用场景

​ List类型是Redis提供的一个非常有用的数据结构,使用场景广泛,以下是一些常见的使用场景:

消息队列:

​ Redis的List类型可以实现简单的消息队列,例如,可以使用LPUSH命令将消息推入队列,使用RPOP或者BLPOP命令从队列中获取消息。这种方式可以用于处理异步任务,比如发送邮件、生成报表等。

排行榜:

​ List类型可以实现各种排行榜功能,例如,可以使用LPUSH命令将用户的分数推入列表,然后使用LRANGE命令获取列表的前N个元素,即得到排行榜的前N名。这种方式可以用于实现各种实时排行榜,比如在线游戏的积分榜、电商网站的销售榜等。

日志记录:

​ Redis的List类型可以用于实现简单的日志记录功能。例如,可以使用LPUSH命令将日志信息推入列表,然后使用LTRIM命令保留最近的N条日志。这种方式可以用于监控系统运行状况,及时发现和处理问题。

实时信息流:

​ 例如微博或新闻应用,有人发布新的微博或新闻时,后端服务器需要先将这些新的微博或新闻加入Redis的List中,这样用户端才会实时地看到这些更新。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值