Redis 是最流行的内存数据存储系统,不仅是缓存层的标准选择,还广泛应用在分布式锁、消息队列、实时排行榜、限流器等场景。本专题从底层数据结构深入到集群架构与安全运维。
内容导航
| 序号 | 文章 | 核心知识点 |
|---|---|---|
| 01 | Redis 核心概念与基础数据结构 | SDS、ziplist、skipList、编码转换、String/Hash/List/Set/ZSet |
| 02 | 持久化机制: RDB vs AOF | 快照、日志重写、混合持久化、Copy-On-Write |
| 03 | 主从复制与 Sentinel 高可用 | PSYNC、复制偏移量、Sentinel 选举、故障转移、脑裂防护 |
| 04 | 高可用 Cluster 集群架构 | 分片、槽位、槽迁移、客户端路由、扩容缩容 |
| 05 | 缓存设计模式与防御策略 | Cache Aside、穿透/击穿/雪崩、双删、预热 |
| 06 | 消息队列: Pub/Sub 与 Streams | 消费组、ACK、持久化消息、延迟队列 |
| 07 | 分布式锁与原子操作 | SET NX EX、Redlock、Redisson、Lua 脚本 |
| 08 | 事务、Lua 脚本与原子操作 | MULTI/EXEC/WATCH、EVAL/EVALSHA、原子扣库存、限流器 |
| 09 | Java 客户端与 Spring Data Redis | Lettuce、Jedis、Template、@Cacheable、读写分离 |
| 10 | Go + Redis 实战 | go-redis/v9、连接池、Pipeline、事务、发布订阅 |
| 11 | 性能调优与生产监控 | 内存优化、大 Key 治理、慢查询、延迟监控、基准测试 |
| 12 | 生产安全指南 | ACL 权限、TLS 加密、Bind 限制、审计日志、命令禁用 |
| 13 | 内存管理深度解析 | jemalloc、内存碎片主动整理、驱逐策略、maxmemory |
| 14 | 网络模型与高性能 IO | epoll、RESP3、Pipeline、IO 多线程 |
| 15 | 数据迁移与集群扩容 | 在线迁移、槽迁移、Redis Shake、零停机 |
| 16 | Redis 7.x 新特性详解 | Functions、ACLv2、Sharded Pub/Sub、listpack |
| 17 | 微服务架构中的缓存模式 | 多层缓存、CQRS、限流器、会话共享 |
| 18 | 监控与可观测性 | 慢日志、Prometheus、Grafana、告警规则 |
| 19 | 缓存架构演进路径 | 单体→Sentinel→Cluster→多级缓存→Cache-as-a-Service |
| 20 | Stream 消息队列对比 | Streams vs Kafka/RabbitMQ、选型矩阵 |
| 21 | 高并发限流器设计 | 固定/滑动窗口、令牌桶、漏桶、分布式限流、网关限流、热点防护 |
| 22 | 大 Key 与热 Key 治理 | 大 Key 发现与拆分、热 Key 探测与缓解、监控告警 |
| 23 | 过期键淘汰与内存回收 | 惰性/定期删除、expire cycle、驱逐策略、碎片整理 |
| 24 | 高级数据结构实战 | Bitmap、HyperLogLog、GEO、布隆过滤器、Stream、bitfield |
| 25 | 缓存一致性终极方案 | 延迟双删、binlog 订阅、版本号校验、最终一致性 |
| 26 | Redis 向量检索 | RediSearch、HNSW、Embedding 管道、混合过滤、选型 |
| 27 | Redis 管道、事务与批量优化:从 N 次 RTT 到一次 | pipeline 原理、RTT 开销、MULTI/EXEC 与 WATCH、Lua 对比 |
| 28 | Redis 容灾与备份恢复:RDB/AOF 备份、复制与演练 | RDB/AOF/混合持久化、异地容灾、故障演练、恢复步骤 |
| 29 | Redis 对象编码与内存优化:listpack 与编码转型 | redisObject、编码选择与转型阈值、listpack/quicklist/skiplist、内存优化 |
| 30 | Redis 客户端缓存与 RESP3:降低往返延迟 | RESP2/RESP3、CLIENT TRACKING、四种缓存模式、一致性权衡 |
| 31 | Redis Sentinel 高可用:监控、故障转移与生产运维 | quorum 投票、主观/客观下线、故障转移流程、客户端重定向 |
| 32 | Redis Cluster 数据分片与扩缩容实战 | 16384 槽位、CRC16 与 hash tag、gossip、槽迁移、扩缩容 |
| 33 | Redis Functions 与脚本工程化:EVAL、EVALSHA 与 FUNCTION 全解析 | Lua 脚本、脚本缓存、FUNCTION 注册与库、原子性与复制语义、调试测试 |
| 34 | Redis 全文检索实战:RediSearch 索引、查询与聚合 | FT.CREATE、FT.SEARCH、FT.AGGREGATE、分词与同义词、排序分页、性能调优 |
| 35 | Redis JSON 文档存储:JSONPath 与文档建模实战 | JSON.SET/GET、JSONPath 语法、数组与嵌套更新、索引集成、文档建模 |
| 36 | Redis 时间序列:TS 模块与指标采集实战 | TS.CREATE、TS.ADD、TS.RANGE、降采样规则、保留策略、标签与聚合 |
| 37 | Redis 托管云服务选型:ElastiCache、MemoryDB 与 Redis Cloud 对比 | 托管服务对比、成本模型、持久化与一致性、Serverless、迁移与锁定的权衡 |
| 38 | Redis 线上排障与延迟诊断:SLOWLOG、LATENCY 与阻塞命令全流程 | SLOWLOG、LATENCY MONITOR/DOCTOR、INFO 指标、CLIENT LIST、fork 与 AOF 抖动、案例复盘 |
| 39 | Keyspace 通知与变更捕获 | keyspace/keyevent 通知、事件过滤、CDC 管道、可靠性与性能代价 |
| 40 | GEO 地理空间命令实战 | GEOADD、GEOSEARCH、geohash 编码、附近查询、地理围栏 |
| 41 | Kubernetes Operator 运维 | Operator 模型、CRD 定义、拓扑编排、故障自愈、版本升级 |
| 42 | 代理与路由方案 | twemproxy、Envoy Redis 代理、读写分离路由、连接复用与故障转移 |
| 43 | Key 设计与命名规范 | 命名空间、冒号分层、长度与可读性、hash tag、生命周期约定 |
| 44 | 多租户隔离与资源配额 | 逻辑隔离 vs 实例隔离、ACL 分权、内存配额、噪声邻居治理 |
学习路线建议
阶段一: 数据类型 → 内存结构 → 持久化
阶段二: 主从复制 → Sentinel → Cluster
阶段三: 缓存策略 → 分布式锁 → 消息队列
阶段四: 事务脚本 → 性能调优 → 安全运维
相关专题
- MongoDB 文档数据库 — 缓存层与持久存储的配合
- Java 企业级开发生态 — Spring Data Redis 使用
- Go 语言专题 — go-redis 实战
- 系统架构设计 — 缓存设计原则
- 分布式系统 — 分布式缓存与集群模式实现
- Node.js 全栈开发 — ioredis 客户端与 Redis 缓存策略
- DevOps 专题 — Redis 容器化部署与监控告警
- 消息队列 — 缓存预热与 Kafka Streams 实时聚合
- AI 推理加速 — Redis 在 LLM 推理缓存中的应用(Prompt Cache)
- 数据库深度专题 — 缓存一致性、旁路缓存与事务补偿
Redis 的适用与不适用
| 适用场景 | 不适用场景 |
|---|---|
| 会话缓存、热点数据 | 持久化主存储(内存贵且易失) |
| 排行榜、计数器 | 复杂事务(无 ACID 保证) |
| 分布式锁、限流 | 大数据量存储(内存限制) |
| 消息队列(轻量) | 严格有序消息(用 Kafka) |
| 实时地理位置 | 全文搜索(用 Elasticsearch) |
Redis 是「高速公路」,不是「仓库」。它擅长快速读写、简单计算和临时存储。将 Redis 当作主数据库使用是常见反模式——内存的昂贵和易失性决定了它只能是缓存层或辅助存储。
专题统计
- 文章数量: 44 篇深度技术文章(9 篇核心教程 + 3 篇进阶实践 + 32 篇专题扩展)
- 覆盖领域: 数据结构、持久化、集群、缓存策略、Stream、安全、变更捕获、地理空间、K8s 运维、多租户
- 难度分布: 入门 20% → 中级 50% → 高级 30%
- 总预估阅读时间: 约 336 分钟