Redis 进阶教程专栏导览
专栏定位
Redis 的入门很简单——SET key value、GET key,五分钟就能上手。但”会用”和”用好”之间有巨大的鸿沟:你知道 ZSet 可以实现延迟队列吗?你理解缓存穿透和缓存击穿的本质区别以及各自的防御方案吗?你知道 Redlock 为什么被 Martin Kleppmann 批判、争议的焦点到底在哪里吗?你的 Redis 线上突然延迟飙升,能在 5 分钟内定位到是大 Key 还是 AOF 刷盘导致的吗?
本专栏聚焦 Redis 的进阶用法与生产实战——从数据类型的高级技巧到缓存架构设计,从分布式锁的工程陷阱到消息队列的选型决策,从客户端性能优化到生产环境的监控与故障排查。每篇文章都以”解决实际问题”为导向,拒绝浅尝辄止的 API 堆砌。
前置知识:熟悉 Redis 五大基础数据类型的基本 CRUD 操作。深层原理部分可参考姊妹专栏 Redis 设计与实现。
目录
| 序号 | 文章 | 核心内容 |
|---|---|---|
| 01 | 01 Redis 数据类型全景——五大基础类型的进阶用法 | String 的 bitmap/计数器妙用、List 的阻塞队列、Hash 的部分更新与 HSCAN、Set 的交并差集运算、ZSet 的排行榜/延迟队列/滑动窗口 |
| 02 | 02 高级数据类型——HyperLogLog Bitmap Geo Stream | HyperLogLog 基数统计的概率原理、Bitmap 位运算与布隆过滤器、Geo 的 GeoHash 编码、Stream 的完整消息队列模型 |
| 03 | 03 Redis 事务 Lua 脚本与原子性保证 | MULTI/EXEC 的 CAS 乐观锁、Lua 脚本原子性与沙箱、EVALSHA 缓存、Redis Function、实战:限流/库存扣减 |
| 04 | 04 缓存设计模式与一致性问题 | 四种缓存模式对比、穿透/击穿/雪崩的成因与解决、数据库与缓存双写一致性方案 |
| 05 | 05 热 Key 大 Key 治理与容量规划 | 大 Key 检测与拆分、热 Key 检测与本地缓存、内存碎片治理、容量规划方法论 |
| 06 | 06 Redis 分布式锁——从 SETNX 到 Redlock 的争议 | 单节点锁实现、锁续期与看门狗、Redlock 算法与 Kleppmann 批判、Redisson 源码、与 ZooKeeper/etcd 对比 |
| 07 | 07 Redis 消息队列——从 PubSub 到 Stream | List 阻塞队列、Pub/Sub 局限、Stream 消费者组模型、Stream vs Kafka 选型、死信处理 |
| 08 | 08 Redis Pipeline 与客户端性能优化 | RTT 瓶颈、Pipeline 原理、连接池设计(Jedis/Lettuce/Redisson)、代理层、慢查询分析 |
| 09 | 09 Redis 与搜索——RediSearch 与 RedisJSON | RedisJSON 文档存储、RediSearch 全文索引与向量搜索、Redis 作为二级索引、Redis Stack 模块生态 |
| 10 | 10 Redis 生产运维——监控 告警与故障排查 | INFO 指标解读、Prometheus 监控体系、常见故障 SOP(内存暴涨/延迟毛刺/主从断开/脑裂)、在线扩容 |
推荐阅读路径
- 缓存架构师:04 → 05 → 08 → 10(缓存设计 + 治理 + 优化 + 运维)
- 后端开发者:01 → 02 → 03 → 06(数据类型 + 脚本 + 分布式锁)
- 消息/搜索场景:07 → 09(Stream 消息队列 + RediSearch)
- 运维/SRE:05 → 08 → 10(Key 治理 + 性能 + 监控故障排查)
关联专栏
- Redis 设计与实现:底层数据结构、事件循环、持久化等原理
- 分布式锁:从 Redis 分布式锁到通用分布式锁理论
- Java 并发:单机锁 → 分布式锁的演进对比
- 指标体系:Redis Prometheus 监控与告警体系
- Kafka:Redis Stream vs Kafka 的消息队列选型