Redis——》数据类型:list(列表)

推荐链接:
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】


相关链接:
    Redis——》数据类型
    Redis——》数据类型:string(字符串)
    Redis——》数据类型:hash(哈希)
    Redis——》数据类型:list(列表)
    Redis——》数据类型:set(集合)
    Redis——》数据类型:zset(有序集合)
    Redis——》数据类型:bitmap

一、简介

列表(list)类型是用来存储多个有序的字符串,一个列表最多可以存储2^32-1个元素。

二、应用场景

消息队列,文章列表

三、底层结构

ziplist(压缩列表)、linkedlist(链表)

四、操作示例

(1)增

语法示例描述
lpush key value1 [value2]lpush k1 1 2 3将一个或多个值插入到列表头部
lpushx key valuelpushx k1 1将一个或多个值插入到已存在的列表头部
rpush key value1 [value2]rpush k1 4 5将一个或多个值插入到列表尾部
rpushx key valuerpushx k1 4将一个或多个值插入到已存在的列表尾部
lset key index valuelset k1 0 0通过索引设置列表元素的值
linsert key BEFORE|AFTER pivot valuelinsert k1 before 6 a在列表的元素前或者后插入元素
在这里插入图片描述

(2)删

语法示例描述
lrem key count valuelrem k1 1 1移除列表元素
lpop keylpop k1移出并获取列表的第一个元素
rpop keyrpop k1移除并获取列表最后一个元素
blpop key1 [key2 ] timeoutblpop k1 0移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
brpop key1 [key2 ] timeoutbrpop k1 0移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
rpopplush source destinationrpopplush k1 k2移除列表的最后一个元素,并将该元素添加到另一个列表并返回
brpopplush source destinationbrpopplush k1 k2移除列表的最后一个元素,并将该元素添加到另一个列表并返回; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
ltrim key start stopltrim k1 1 3只保留指定区间内的元素,删除不在指定区间之内的元素

在这里插入图片描述

(3)改

见增

(4)查

语法示例描述
lindex key indexlindex k1 0通过索引获取列表中的元素
llen keyllen k1获取列表长度
lrange key start stoplrange k1 0 -1获取列表指定范围内的元素
help @list

# 从左边放入
lpush k1 a b c d e f
# 从右边放入
rpush k2 a b c d e f

# 从左边取出
lpop k1

# 从右边取出
rpop k2

# 从0开始
lrange k1 0 -1
# 查询下标为2的值
lindex k1 2

# 查询最后一个值
lindex k1 -1

# 设置下标3的值
lset k1 3 xxxx

lpush k3 1 a 2 b 3 a 4 a
# count为正数,从前面,移除2个a
lrem k3 2 a
# count为负数,从后面,移除2个a
lrem k3 -2 a

# 在值为6的后边插入a
linsert k3 after 6 a

# 在值为3的前边插入a
linsert k3 before 6 a

# 有多少个元素
llen k3

help ltrim 
#两端数据删除

五、操作组合

  • lpush+lpop=Stack(栈)
  • lpush+rpop=Queue(队列)
  • lpush+ltrim=Capped Collection(有限集合)
  • lpush+brpop=Message Queue(消息队列)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值