Appearance
Redis 技术详解
Redis(Remote Dictionary Server)是开源的高性能键值存储数据库,基于内存运行并支持持久化。它不仅仅是一个缓存,更是数据结构服务器、消息中间件、分布式锁提供者。本章从基础到原理,全面深入讲解 Redis。
Redis 核心能力
┌─────────────────────────────────────────────────────────────────┐
│ Redis 能力全景 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 5种基本 │ │ 3种扩展 │ │ RDB/AOF │ │ 主从/哨兵 │ │
│ │ 数据结构 │ │ 数据结构 │ │ 持久化 │ │ /集群 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 分布式锁 │ │ 发布订阅 │ │ Stream │ │ Lua脚本 │ │
│ │ │ │ │ │ 消息队列 │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 过期策略 │ │ 淘汰策略 │ │ Pipeline │ │ 事务 │ │
│ │ │ │ │ │ 管道 │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────┘学习路线
| 阶段 | 内容 | 目标 |
|---|---|---|
| 入门 | 基础概念、5 种基本数据结构、常用命令 | 能用 Redis 做缓存 |
| 进阶 | 持久化、主从、哨兵、集群 | 能搭建高可用 Redis |
| 深入 | 缓存问题、分布式锁、底层原理 | 能解决生产问题 |
| 精通 | 源码级理解、性能调优、架构设计 | 能设计 Redis 架构 |
文档导航
| 文档 | 内容 |
|---|---|
| Redis 基础入门 | 是什么、为什么快、IO 多路复用、单线程 vs 多线程 |
| 数据结构详解 | String/List/Set/ZSet/Hash + Bitmap/HyperLogLog/GEO |
| 持久化详解 | RDB/AOF 原理、混合持久化、数据恢复、如何选择 |
| 主从复制详解 | 全量/增量同步、拓扑结构、常见问题 |
| 哨兵模式详解 | Sentinel 架构、Leader 选举、故障转移 |
| 集群模式详解 | 虚拟槽分区、Gossip 协议、故障转移、集群伸缩 |
| 缓存问题与解决方案 | 击穿/穿透/雪崩、布隆过滤器、缓存一致性、热 key、大 key |
| 分布式锁详解 | SETNX 演进、Redisson、RedLock、可重入锁 |
| 底层数据结构 | SDS、字典、跳表、压缩列表、快速列表、intset |
| 高级特性 | Pipeline、事务、Lua、发布订阅、Stream |
问题研讨
| 文档 | 内容 |
|---|---|
| IO 多路复用 | epoll 底层原理、select/poll/epoll 对比、LT/ET、Redis 事件循环、常见误区 |
| Redis 发展史 | antirez 如何从一个网站性能问题开始,写出改变世界的数据库 |
