Redis列表学习记录

概括

redis列表是一种有序的线性结构,它之中的数据可以重复。正是因为它是有序的,所以它能作为一些常用的数据结构,如队列、栈等。也能进行一些相应的操作,比如遍历、索引取值等。

操作命令

推入、取出操作:LPUSH、RPUSH、LPOP、RPOP

LPUSH、RPUSH、LPOP、RPOP这四个命令分别对应于左边推入、右边推入、左边弹出、右边弹出这四个操作,其中推入操作可一次推入多个值,如果按照从左向右来看推入的数据的话,那么LPUSH最先推入的在最右边、RPUSH最先推入的在最左边,即RPUSH操作看起来跟从左向右的方向一致。另外还有LPUSHX、RPUSHX操作,这两个操作是只有列表本身存在的条件下才会起反应,并且它们一次只能推入一个元素。
弹出操作,操作一次只能弹出列表最边上的一个元素,LPOP弹出左边的元素,RPOP弹出最右边的元素。另外还有BRPOP这个命令,它后跟一个或多个空值列表,其用来可以阻塞客户端的弹出操作,直到有另一个客户端向对应的某个列表中推入一个数据时,这个客户端才会变为非阻塞状态。BLPOP命令类似。
这里还有一个命令 RPOPLPUSH命令,它指从源列表最右端弹出一个元素,并推入到目标列表的最左边,源列表和目标列表可以是同一个列表。
BRPOPLPUSH命令即是阻塞式的RPOPLPUSH命令。
命令汇总:

LPUSH list item [item item ...]
RPUSH list item [item item ...]
LPUSHX list item
RPUSHX list item
LPOP list
RPOP list
RPOPLPUSH sourcelist targetlist
BLPOP list [list ...] timeout
BRPOP list [list ...] timeout
BRPOPLPUSH source_list target_list timeout
LSET命令
LSET list index new_element

这个命令即给对应的索引位置设置新的值,若给的索引超出列表原本范围,则返回错误。

LINSERT
LINSERT list BEFORE|AFTER target_element new_element

这个命令在列表中元素的前面或者后面插入新元素(因为列表中数据有重复,所以它只在最先找到的元素位置插入)。

LRANGE
LRANGE list start end

获取对应索引范围内的元素。注意这里的范围是闭区间。索引也可以为负值,比如最后一个元素的索引为-1,一般获取列表中所有元素的操作命令是: LRANGE list 0 -1。

LLEN
LLEN list

获取列表的长度。

LINDEX
LINDEX list index

获取指定索引上的元素。

LTRIM
LTRIM list start end

对列表进行裁剪。只保留指定闭区间范围内的元素。

LREM
LREM list count element

从列表中移除对应的某个元素,因为元素是重复的,可以有多个,所以可以指定移除的个数。若指定个数为0,则默认移除列表中所有的这个元素, 若个数为负数,则从列表右端开始向左端检查,并移除最先发现的负数的绝对值个元素。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值