redis数据类型之list(列表)

本文深入探讨Redis中的List数据结构,从队列和栈的应用场景,到其他操作如lindex、lrange、ltrim。重点解析内部实现,包括压缩表(ziplist)的结构、优势、增加元素过程及其级联更新问题,以及快速列表(quicklist)如何结合ziplist和双向链表以优化性能和内存使用。通过对list配置参数的理解,有助于更好地运用Redis List。
摘要由CSDN通过智能技术生成


list是链表不是数组,故其插入和删除操作非常快,时间复杂度为O(1),但是索引定位很慢,时间复杂度为O(n)。

一、队列

> rpush numbers one two three
(integer) 3
> llen numbers
(integer) 3
> lpop numbers
"one"
> lpop numbers
"two"
> lpop numbers
"three"
> lpop numbers
(nil)

队列是先进先出的数据结构,常用语消息排队和异步逻辑处理。

二、栈

> rpush numbers one two three
(integer) 3
> rpop numbers
"three"
> rpop numbers
"two"
> rpop numbers
"one"
> rpop numbers
(nil)

栈是先进先出的数据结构。用reids列表数据结构来做栈的业务场景并不多见。

三、其他操作

这里的其他操作都是操作效率比较低的操作
1、lindex
可以使用lindex对列表进行遍历,但是其性能将随着参数lindex的增大而变差

> rpush numbers one two three
(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值