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> 
相关推荐
elseif1231 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
Aloha_up1 小时前
redis与数据库的一致性问题分析
数据库·redis·缓存
Book思议-1 小时前
【数据结构实战】双向链表:在指定位置插入数据
c语言·数据结构·算法·链表
白昼流星!2 小时前
顺序表与单链表的数据存储差异: 为何顺序表元素用指针,链表节点数据不用?
数据结构·链表·顺序表
6+h2 小时前
【Redis】底层原理解析(SDS / 跳表 / IO多路复用 / 单线程模型)
数据库·redis·bootstrap
y = xⁿ3 小时前
【LeetCodehot100】T108:将有序数组转换为二叉搜索树 T98:验证搜索二叉树
数据结构·算法·leetcode
不是株3 小时前
算 法
数据结构·python·算法
自信150413057593 小时前
插入排序算法
c语言·数据结构·算法·排序算法
阿Y加油吧3 小时前
力扣打卡day09——缺失的第一个正数、矩阵置零
数据结构·算法·leetcode
仰泳的熊猫3 小时前
题目2576:蓝桥杯2020年第十一届省赛真题-解码
数据结构·c++·算法·蓝桥杯