Redis数据类型之列表类型

列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。

列表类型内部是使用双向链表(double linked list)实现的,所以向列表两端添加元素的时间复杂度为O(1),获取越接近两端的元素速度就越快。这意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。

1.向列表两端增加元素

lpush key value [value...]    向列表左边增加元素
rpush key value [value...]    向列表右边增加元素

2.从列表两端弹出元素

lpop key                      从列表左边弹出一个元素
rpop key                      从列表右边弹出一个元素

3.获取列表中元素的个数

llen key

4.获得列表片段

lrange key start stop
    lrange 命令支持负索引,表示从右边开始计算序数,如-1表示最右边第一个元素,-2表示最右边第二个元素。

    显然,lrange  key 0 -1可以获取列表中的所有元素。另外一些特殊情况下。

  • 如果start的索引位置比stop的索引位置靠后,则会返回空列表
  • 如果stop大于实际的索引范围,则会返回到列表最右边的元素

5.删除列表中指定的值

lrem key count value   

lrem命令会删除列表中前count个值为value的元素。根据count的值不同,lrem命令的执行方式会有略有差异:

  • 当count>0时,从列表的左边开始删除前count个值为value的元素
  • 当count<0时,从列表的右边开始删除前count个值为value的元素
  • 当count=0时,删除所有值为value的元素

6.获得/设置指定索引的值

lindex key index        获得指定索引的值
lset key index value    设置指定索引的值

7.只保留列表指定片段

ltrim key start end

    ltrim命令可以删除指定索引范围之外的所有元素,其指定列表范围的方法和lrange命令相同。

8.向列表中插入元素

linsert key before|after pivot value

    linsert 命令首先会在列表中从左到右查找值为pivot的元素,然后根据第二个参数是before还是after来决定将value插入到该元素的前面还是后面。

9.将元素从一个列表转到另一个列表

rpoplpush source destination
    先执行rpop命令再执行lpush命令,rpoplpush命令会先从source列表类型键的右边弹出一个元素,然后将其加入到destinnation列表类型键的左边,并返回这个元素的值,整个过程是原子的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值