8. Redis 数据类型-list

 

list类型是用来存储多个有序字符串,一个列表最多可以存储2的32次方-1.

(1)常用命令

 

 

 

 

  • lpush rpush lpop rpop:从头部尾部插入数据,弹出数据。
  • lpushx rpushx 插入数据的时候判断key是否存在,如果不存在就不进行任何操作。
  • blpop brpop 阻塞的进行弹出操作。以blpop为例,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。不同的客户端被放进一个队列中,按『先阻塞先服务』(first-BLPOP,first-served)的顺序为 key 执行 BLPOP 命令。
  • lrange 获取数据,索引从0-N-1:lrange key start end
  • llen 判断数据量
  • lset 修改指定索引下标的元素:lset key index newvalue
  • lindex 获取列表指定索引下标的元素:lindex key index
  • linsert 在pivot元素的前面或后面插入参数中的元素value:

linsert key BEFORE|AFTER pivot value

 

 

  • ltrim仅保留指定范围内的元素:ltrim key start stop
  • lrem 删除前count个值等于value的元素。如果count大于0,从头向尾遍历并删除,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素:lrem key count value
  • Rpoprpush
  • brpoplpush 从某list弹出数据并且push到另外的list。b..只是阻塞式的操作。

(2)内部编码

redis 3.2之前:

  • ziplist: list elements < list-max-ziplist-entries(512 by default) 
  • linkedlist: 无法满足ziplist的条件时。

redis 3.2 新加了quicklist来作为list的底层实现。

quicklist是由ziplist组成的双向链表,链表中的每一个节点都以压缩列表ziplist的结构保存着数据,而ziplist有多个entry节点,保存着数据。相当与一个quicklist节点保存的是一片数据,而不再是一个数据。 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金士顿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值