redis之list

1、限制条件

The max length of a Redis list is 2^32 - 1 (4,294,967,295) elements.

2、基本命令

LPUSH 添加新的元素到头部,或者讲是从左添加;
RPUSH 添加新的元素到尾部,或者讲是从右添加.
LPOP 从头部或者左边获取第一个元素并删除;
RPOP 从尾部或者右边获取第一个元素并删除.
LLEN 返回集合的长度
LMOVE 原子操作将元素从一个列表移动到另一个列表。
LTRIM 将列表缩小到指定的元素范围。

3、例子

(1)类似队列先进先出

> LPUSH work:queue:ids 12
(integer) 1
> LPUSH work:queue:ids 22
(integer) 2
> RPOP work:queue:ids
"12"
> RPOP work:queue:ids
"22"

(2)类似栈先进后出

> LPUSH work:queue:ids 101
(integer) 1
> LPUSH work:queue:ids 237
(integer) 2
> LPOP work:queue:ids
"237"
> LPOP work:queue:ids
"101"

(3)检查list的长度

> LLEN work:queue:ids
(integer) 0

(4)从一个列表中取出一个元素并将其推入另一个列表

> LPUSH board:todo:ids 101
(integer) 1
> LPUSH board:todo:ids 273
(integer) 2
> LMOVE board:todo:ids board:in-progress:ids LEFT LEFT
"273"
> LRANGE board:todo:ids 0 -1
1) "101"
> LRANGE board:in-progress:ids 0 -1
1) "273"

(5)要创建一个不超过100个元素的上限列表,你可以在每次调用LPUSH后调用LTRIM

> LPUSH notifications:user:1 "You've got mail!"
(integer) 1
> LTRIM notifications:user:1 0 99
OK
> LPUSH notifications:user:1 "Your package will be delivered at 12:01 today."
(integer) 2
> LTRIM notifications:user:1 0 99
OK

4、阻塞的命令

BLPOP从列表的头部删除并返回一个元素。如果列表为空,则该命令将阻塞,直到某个元素可用或达到指定的超时。
BLMOVE原子地将元素从源列表移动到目标列表。如果源列表为空,则该命令将阻塞,直到新元素可用为止。

5、性能

访问其头部或尾部的列表操作是O(1),这意味着它们非常高效。然而,操作列表中元素的命令通常是O(n)。这些例子包括LINDEX、LINSERT和LSET。运行这些命令时请谨慎,特别是在操作大型列表时。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值