Redis
→ 返回 NoSQL
Redis(REmote DIctionary Server)是基于内存的键值存储,单线程执行命令(6.0+ 可多线程 IO),读写可达 10 万+ QPS。常用于缓存、分布式锁、限流、会话、排行榜、轻量 MQ(Stream / List)。
缓存架构见 缓存架构;与 MySQL 见 MySQL;进程内缓存见 Caffeine。
入门:基础命令(redis-cli + 各类型命令表)。
专题导航
基础
| 文档 | 内容 |
|---|---|
| 基础命令与使用 | redis-cli、Key/String/Hash/List/Set/ZSet 命令速查 |
| 架构、事件循环与线程模型 | ae、epoll/Reactor、单线程、IO 多线程、fork/COW |
| 线程池与客户端连接 | 服务端 I/O/BIO、Lettuce/Jedis/Redisson 线程与连接池、阻塞命令隔离 |
| 数据结构 | 对外数据类型、场景与选型 |
| 底层数据结构与对象编码 | redisObject、SDS、dict/rehash、listpack、quicklist、skiplist |
| Hash | 对象、购物车、HSCAN |
| ZSet | 排行榜、延迟队列 |
| 过期与持久化 | 过期字典、近似 LRU/LFU、RDB/COW、AOF 写入/刷盘/重写 |
高可用与分布式
| 文档 | 内容 |
|---|---|
| 主从与哨兵 | replid/offset、PSYNC、backlog、全量/部分同步、Sentinel 选举 |
| Cluster 集群 | Hash Slot、MOVED/ASK、迁槽、Gossip、故障转移、跨 slot 限制 |
| 分布式锁 | SET NX PX、DELEX/Lua、watchdog、fencing token、事务边界、Redlock |
| Redis、MySQL 与缓存一致性 | Cache Aside、主从读延迟、Binlog/Canal、MQ 幂等同步与补偿 |
| Pipeline 与 Stream | Pipeline、Lua、Pub/Sub、Stream 消费组 |
运维与落地
| 文档 | 内容 |
|---|---|
| 运维与集成 | 避坑清单、CAP、慢查询、Spring Boot |
底层原理阅读顺序
请求进入 Redis
→ 架构与线程模型(epoll / Reactor / 命令执行)
→ 线程池与客户端连接(I/O/BIO / Netty / 连接复用与隔离)
→ 底层数据结构(对象编码 / dict / listpack / skiplist)
→ 过期与持久化(RDB / COW / AOF)
→ 主从与哨兵(PSYNC / backlog / failover)
→ Cluster(Hash Slot / 路由 / 迁槽 / Gossip)部署形态速览
单机 ──► 主从复制 ──► Sentinel 自动故障转移 ──► Cluster 分片扩展
| 形态 | 适用 |
|---|---|
| 单机 | 开发、可丢缓存 |
| 主从 + Sentinel | 中小规模、自动 failover |
| Cluster | 大数据量、水平扩展 |