✅ Day 10 学习计划
📌 主题:Redis 专题日 1:五大数据结构、持久化与事务
一、✅ 今日目标
- 理解 Redis 中的五大核心数据结构(String、List、Set、Hash、Sorted Set)
- 掌握 Redis 的持久化机制:RDB、AOF
- 了解 Redis 事务模型和原子操作
二、核心知识学习 🧠
1. Redis 五大数据结构(基础掌握)
数据结构 | 用途 | 特点/优势 |
---|
String | 缓存、计数器、Session 管理 | 简单字符串存储,可执行各种操作如 SET 、GET 、INCR 等 |
List | 消息队列、任务调度、堆栈管理 | 可以快速地从两端进行推送与弹出,支持阻塞操作如 BLPOP |
Set | 去重、集合操作 | 支持无重复元素集合操作,如 SADD 、SPOP ,适合快速判断元素是否存在 |
Hash | 存储对象、数据映射 | 高效存储键值对集合,可通过 HGET , HSET 等操作访问子字段 |
ZSet | 排行榜、带权重的元素排序 | 支持有序存储,基于跳表实现,常用于排行榜、带有权重的排序等应用 |
2. Redis 持久化机制
- RDB(快照方式):将数据库的状态定期保存到硬盘上,适合数据量较大时使用。优点是数据恢复速度快,缺点是丢失最后一部分数据。
- 命令:
SAVE
、BGSAVE
、CONFIG REWRITE
- AOF(追加式日志):通过将写操作记录到日志中,保证操作的持久性。缺点是性能可能较差,但可以通过设置同步策略来优化。
- 命令:
appendonly yes
,BGREWRITEAOF
appendfsync
配置(always、everysec、no)
3. Redis 事务模型
- 事务:Redis 的事务基于队列机制,所有命令会按顺序执行,保证事务的原子性。
- 命令:
MULTI
、EXEC
、DISCARD
、WATCH
- 使用
WATCH
实现乐观锁
三、实践任务 💻
1. 实现与调试
- 手动实现 Redis 常用数据结构操作:
- 使用 List 实现一个简易的消息队列
- 使用 Set 去重并查找公共元素
- 使用 ZSet 实现一个简单的排行榜(如排序用户积分)
2. 测试与观察持久化策略
- 配置 Redis 使用 RDB 和 AOF 同时启用(不同配置优缺点)
- 通过手动故障模拟(如
kill
Redis 进程)观察数据丢失的情况 - 使用
redis-cli
的 MONITOR
命令查看实际操作
四、刷题任务 🔢
今日必刷题:
题目 | 类型 | 链接 |
---|
Redis 过期键机制 | 缓存失效与淘汰策略 | 理解不同的过期策略 |
Redis 数据持久化 | 持久化机制(RDB/AOF) | 深入理解持久化的利弊 |
Redis 事务处理 | 原子操作,事务模型 | 学会通过 Redis 进行批量操作和事务管理 |
五、总结与输出
总结:
- 总结 Redis 五大数据结构 的使用场景,写出每种数据结构的应用案例
- 记录 持久化机制:在不同情况下使用哪种更合适
- 对 Redis 事务模型 的理解:
- 为什么 Redis 事务保证原子性?
WATCH
如何配合事务实现乐观锁?
输出:
- 将 Redis 五大数据结构 的使用案例整理为小册子或笔记,便于日后快速回顾
- 刷题过程中,记录自己对于每道题的解决思路