Redis核心数据结构-list

--- List: 双向链表 ---

1. 模拟队列 (Queue): 先进先出 (FIFO)

生产者: 从左侧推入任务

LPUSH task_queue "task_1"

LPUSH task_queue "task_2"

LPUSH task_queue "task_3"

查看队列所有元素 (0 -1 表示从头到尾)

注意: 结果是 task_3, task_2, task_1 (因为是 Left Push)

LRANGE task_queue 0 -1

消费者: 从右侧弹出任务

RPOP task_queue

返回 "task_1"

2. 模拟栈 (Stack): 后进先出 (LIFO)

LPUSH my_stack "page_1"

LPUSH my_stack "page_2"

弹出栈顶

LPOP my_stack

返回 "page_2"

3. 固定长度列表 (例如: 最近 5 条日志)

LPUSH recent_logs "log_1"

LPUSH recent_logs "log_2"

LPUSH recent_logs "log_3"

只保留最新的 2 条

LTRIM recent_logs 0 1

LRANGE recent_logs 0 -1

bash 复制代码
127.0.0.1:6379> AUTH 123456
OK
127.0.0.1:6379> LPUSH task_queue "task_1"
(integer) 1
127.0.0.1:6379> LPUSH task_queue "task_2"
(integer) 2
127.0.0.1:6379> LPUSH task_queue "task_3"
(integer) 3
127.0.0.1:6379> LRANGE task_queue 0 -1
1) "task_3"
2) "task_2"
3) "task_1"
127.0.0.1:6379> RPOP task_queue
"task_1"
127.0.0.1:6379> LPUSH my_stack "page_1"
(integer) 1
127.0.0.1:6379> LPUSH my_stack "page_2"
(integer) 2
127.0.0.1:6379> LPOP my_stack
"page_2"
127.0.0.1:6379> LPUSH recent_logs "log_1"
(integer) 1
127.0.0.1:6379> LPUSH recent_logs "log_2"
(integer) 2
127.0.0.1:6379> LPUSH recent_logs "log_3"
(integer) 3
127.0.0.1:6379> LTRIM recent_logs 0 1
OK
127.0.0.1:6379> LRANGE recent_logs 0 -1
1) "log_3"
2) "log_2"
127.0.0.1:6379> 
相关推荐
叼烟扛炮7 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
运维全栈笔记10 小时前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
MegaDataFlowers10 小时前
206.反转链表
数据结构·链表
CN-Dust11 小时前
【C++】while语句例题专题
数据结构·c++·算法
凯瑟琳.奥古斯特13 小时前
Redis是什么及核心特性
前端·css·redis·缓存
KmSH8umpK13 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第三篇
redis·分布式·wpf
xieliyu.14 小时前
Java手搓数据结构:从零模拟实现无头双向非循环链表
java·数据结构·链表
如何原谅奋力过但无声15 小时前
【灵神高频面试题合集01-03】相向双指针、滑动窗口
数据结构·python·算法·leetcode
jieyucx16 小时前
Go 数据结构入门:线性表、顺序表、链表
数据结构·链表·golang
HUGu RGIN16 小时前
Linux部署Redis集群
linux·运维·redis