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

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


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

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

  • 一、简介
  • 二、应用场景
  • 三、底层结构
  • 四、操作示例
    • (1)增
    • (2)删
    • (3)改
    • (4)查
  • 五、操作组合

一、简介

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

二、应用场景

消息队列,文章列表

三、底层结构

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

四、操作示例

(1)增

语法 示例 描述
lpush key value1 [value2] lpush k1 1 2 3 将一个或多个值插入到列表头部
lpushx key value lpushx k1 1 将一个或多个值插入到已存在的列表头部
rpush key value1 [value2] rpush k1 4 5 将一个或多个值插入到列表尾部
rpushx key value rpushx k1 4 将一个或多个值插入到已存在的列表尾部
lset key index value lset k1 0 0 通过索引设置列表元素的值
linsert key BEFORE|AFTER pivot value linsert k1 before 6 a 在列表的元素前或者后插入元素
Redis——》数据类型:list(列表)_第1张图片

(2)删

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

Redis——》数据类型:list(列表)_第2张图片

(3)改

见增

(4)查

语法 示例 描述
lindex key index lindex k1 0 通过索引获取列表中的元素
llen key llen k1 获取列表长度
lrange key start stop lrange 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(消息队列)

Redis——》数据类型:list(列表)_第3张图片

你可能感兴趣的:(Redis,redis,list)