基础篇

1.基础架构 一个 KV 数据库包含什么

2.数据结构 快速的 Redis 有哪些慢操作

3.高性能I/O模型 WHY 单线程 Redis 那么快

4.AOF 日志 宕机如何避免数据丢失

5.内存快照 宕机如何快速恢复

6.数据同步 如何实现主从一致

7.哨兵机制 主库挂,如何不间断服务

8.哨兵集群 哨兵挂,主从库还能切换吗

9.切片集群 数据增多,加内存还是加实例

10.总结

实践篇

数据结构

11.数据类型 String

12.集合

13.GEO

14.时间序列

15.消息队列

性能和内存

16.异步机制 如何避免单线程模型的阻塞

17.为什么 CPU 结构也会影响 Redis 性能

18.波动的响应延迟 如何应对变慢的 Redis 自身操作

19.波动的响应延迟 如何应对变慢的 Redis 操作系统 文件系统

20.删除数据后, 内存占用率还高?

21.缓冲区

22.总结

缓存

23.旁路缓存

24.替换策略 缓存满了

25.缓存异常 缓存 与 DB 数据不一致

26.缓存异常 雪崩,击穿,穿透

27.缓存污染

28.Pika 如何基于 SSD 实现大容量 Redis

29.原子操作 Redis 如何实现无锁

30.如何使用 Redis 实现分布式锁

31.事务机制 Redis 能否实现 ACID

集群

32.Redis 主从同步与故障切换, 坑?

33.脑裂 数据丢失

34.总结

35.Codis 🆚 Redis Cluster

36.Redis 支撑秒杀的关键技术, 实践

37.数据分布优化 数据倾斜?

38.通信开销 限制 Redis Cluster 规模的关键因素

未来

39.Redis 6.0 新特性, 多线程, 客户端缓存与安全

40.Redis下一步 基于NVM内存的实践

41.总结

其他

经典的Redis学习资料

如何学习Redis

成为在压力中成长的人

Redis客户端如何与服务器端交换命令和数据

Redis运维工具

Redis使用规范

微博Redis实践经验

0开篇 咋学

坑: CPU, 内存, 持久化, 网络通信

知识框架

高性能: 线程模型, 数据结构, 持久化, 网络框架

高可靠: 主从复制, 哨兵机制

高可拓展: 数据分片, 负载均衡

问题画像

主线 问题 技术点
性能 阻塞, 抖动, bigkey AOP重写, RDB, 数据结构, 异步机制
内存 bigkey, 占用飙升 淘汰机制, 数据结构
主从库 数据丢失, 主从不一致 AOP重写, RDB, AOF, 哨兵机制
缓存 污染, 雪崩, 穿透 淘汰机制
切片集群 热点数据, 秒杀 数据分布

基础篇

1基础架构: 一个 K-V 数据库包含什么

数据类型, 数据操作, 应用场景

键值数据库基本内部架构

访问框架, 索引模块, 操作模块, 存储模块

访问模式:

1.通过函数库调用的方式提供外部应用使用

2.通过网络框架以 Socket 通信的形式对外提供键值对操作

索引模块

索引类型 Hash, B+树, 字典树 etc. 性能, 空间消耗, 并发控制.

不同数据库的底层实现可能不同.

操作模块

GET, SCAN, PUT, DELETE