Reidis 入门 三 列表类型

本文深入解析Redis中的列表类型,涵盖基本操作如元素的添加、删除、检索,以及如何利用列表实现队列等功能。通过具体命令示例,如LPUSH、RPUSH、LPOP、RPOP等,展示了列表在数据存储和处理上的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.4列表类型

3.4.1 介绍

列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。
列表类型内部是使用双向链表实现的,所以向列表两端添加元素的时间复杂度O(1).
借助列表类型,Redis还可以作为队列使用。

3.4.2 命令

  1. 向列表两端添加元素

LPUSH key value [value …]

RPUSH keyy value [value …]

LPUSH 命令也用来向列表左边添加元素,返回值表示增加元素后列表的长度。

redis> LPUSH numbers 1
(integer) 1

LPUSH命令还支持同时增加多个元素

reids> LPUSH numbers 2 3
(integer) 3

向列表右边增加元素的话则使用RPUSH命令,其用法和LPUSH一样。

  1. 从列表弹出元素

LPOP key

RPOP key

LPOP命令可以从列表左边弹出一个元素。LPOP命令执行两步操作:第一步是将列表左边的元素从列表中移除,第二步是返回被移除的元素值。RPOP同理。

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

LLEN key

当键不存在时LLEN会返回0;

  1. 获得里列表片段

LRANGE key start stop

LRANGE命令是里列表类型最常用的命令之一,它能够获得列表中的某一个片段。LRANGE命令将返回索引从start到stop之间的所有元素(包括两端的元素)。

redis> LRANGE numbers 0 2
1) "3"
2) "2"
3) "1"

LRANGE命令也支持负索引,表示从右边开始计算序数。

redis> LRANGE numbers -2 -1
1) "0"
2) "-1"
  1. 删除列表中指定的值

LREM key count value

LREM命令会删除列表中count个值位value的元素,返回值是实际删除的元素个数。根据count的值得不同,LRME命令的执行方式会略有差异。
1. 当count>0时LREM命令会从列表左边开始删除前count个值位value的元素。
2. 当count<0时LREM命令会从列表右边开始删除前|count|个值位value的元素。
3. 当count=0时LREM命令会删除所有值位value的元素。

3.3.4 命令拾遗

  1. 获得/设置指定索引的元素值

LINDEX key index

LSET key index value

如果要将列表类型当作数组来用,LINDEX命令是必不可少的。LINDEX命令用来返回指定索引的元素,索引从0开始。

redis> LINDEX numbers 0
"2"

LSET是另一个通过索引操作列表的命令,它会将索引为index的元素赋值给value。

redis> LSET numbers 1 7
ok
redis> LINDEX numbers 1
"7"

2.只保留列表指定片段

LTRIM key start end

LTRIM 命令可以删除指定索引范围之外的所有元素。

redis> lRANGE numbers 0 -1
1) "3"
2) "7"
3) "1"
4) "0"
5) "-1"
redis> LTRIM numbers 1 2
ok
redis> LRANGE numbers 0 1
1) "7"
2) "1"
  1. 向列表中插入元素

LINSERT key BEFORE|AFTER pivot value

LINSERT 命令首先会在列表中从左到右查找值为pivot的元素,然后跟俊第二个参数是BEFORE还是AFTER来决定将value插入 到该元素的前面还是后面。该命令的返回值是插入后列表的元素个数。

redis> LRANGE numbers 0 -1
1) "7"
2) "1"
redis> LINSERT numbers AFTER 7 3
(ingeger) 3
redis> LRANGE numbers 0 -1
1) "7"
2) "3"
3) "1"
  1. 将元素从一个列表转移到另一个列表

RPOPLPUSH source destination

从名字中可以看出它的功能:先执行RPOP命令再执行LPUSH命令。RPOPLPUSH命令会先从source列表类型键的右边弹出一个元素,然后将其加入到destination列表类型键的左边,并返回这个元素的值,整个过程是原子的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值