# SUMMARY * [简介](./README.md) * [开篇词 | 这样学Redis,才能技高一筹](./docs/268247.md) * [01 | 基本架构:一个键值数据库包含什么?](./docs/268262.md) * [02 | 数据结构:快速的Redis有哪些慢操作?](./docs/268253.md) * [03 | 高性能IO模型:为什么单线程Redis能那么快?](./docs/270474.md) * [04 | AOF日志:宕机了,Redis如何避免数据丢失?](./docs/271754.md) * [05 | 内存快照:宕机后,Redis如何实现快速恢复?](./docs/271839.md) * [06 | 数据同步:主从库如何实现数据一致?](./docs/272852.md) * [07 | 哨兵机制:主库挂了,如何不间断服务?](./docs/274483.md) * [08 | 哨兵集群:哨兵挂了,主从库还能切换吗?](./docs/275337.md) * [09 | 切片集群:数据增多了,是该加内存还是加实例?](./docs/276545.md) * [10 | 第1~9讲课后思考题答案及常见问题答疑](./docs/277373.md) * [11 | “万金油”的String,为什么不好用了?](./docs/279649.md) * [12 | 有一亿个keys要统计,应该用哪种集合?](./docs/280680.md) * [13 | GEO是什么?还可以定义新的数据类型吗?](./docs/281745.md) * [14 | 如何在Redis中保存时间序列数据?](./docs/282478.md) * [15 | 消息队列的考验:Redis有哪些解决方案?](./docs/284291.md) * [16 | 异步机制:如何避免单线程模型的阻塞?](./docs/285000.md) * [17 | 为什么CPU结构也会影响Redis的性能?](./docs/286082.md) * [18 | 波动的响应延迟:如何应对变慢的Redis?(上)](./docs/286549.md) * [19 | 波动的响应延迟:如何应对变慢的Redis?(下)](./docs/287819.md) * [20 | 删除数据后,为什么内存占用率还是很高?](./docs/289140.md) * [21 | 缓冲区:一个可能引发“惨案”的地方](./docs/291277.md) * [22 | 第11~21讲课后思考题答案及常见问题答疑](./docs/292285.md) * [23 | 旁路缓存:Redis是如何工作的?](./docs/293929.md) * [24 | 替换策略:缓存满了怎么办?](./docs/294640.md) * [25 | 缓存异常(上):如何解决缓存和数据库的数据不一致问题?](./docs/295812.md) * [26 | 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?](./docs/296586.md) * [27 | 缓存被污染了,该怎么办?](./docs/297270.md) * [28 | Pika:如何基于SSD实现大容量Redis?](./docs/298205.md) * [29 | 无锁的原子操作:Redis如何应对并发访问?](./docs/299806.md) * [30 | 如何使用Redis实现分布式锁?](./docs/301092.md) * [31 | 事务机制:Redis能实现ACID属性吗?](./docs/301491.md) * [32 | Redis主从同步与故障切换,有哪些坑?](./docs/303247.md) * [33 | 脑裂:一次奇怪的数据丢失](./docs/303568.md) * [34 | 第23~33讲课后思考题答案及常见问题答疑](./docs/304145.md) * [35 | Codis VS Redis Cluster:我该选择哪一个集群方案?](./docs/306548.md) * [36 | Redis支撑秒杀场景的关键技术和实践都有哪些?](./docs/307421.md) * [37 | 数据分布优化:如何应对数据倾斜?](./docs/308393.md) * [38 | 通信开销:限制Redis Cluster规模的关键因素](./docs/310347.md) * [期中测试题 | 一套习题,测出你的掌握程度](./docs/292800.md) * [期中测试题答案 | 这些问题,你都答对了吗?](./docs/292803.md) * [39 | Redis 6.0的新特性:多线程、客户端缓存与安全](./docs/310838.md) * [40 | Redis的下一步:基于NVM内存的实践](./docs/312568.md) * [41 | 第35~40讲课后思考题答案及常见问题答疑](./docs/313129.md) * [加餐(一)| 经典的Redis学习资料有哪些?](./docs/278677.md) * [加餐(二)| 用户Kaito:我是如何学习Redis的?](./docs/282987.md) * [加餐(三)| 用户Kaito:我希望成为在压力中成长的人](./docs/289950.md) * [加餐(四) | Redis客户端如何与服务器端交换命令和数据?](./docs/298504.md) * [加餐(五) | Redis有哪些好用的运维工具?](./docs/305195.md) * [加餐(六)| Redis的使用规范小建议](./docs/309089.md) * [加餐(七) | 从微博的Redis实践中,我们可以学到哪些经验?](./docs/313895.md) * [期末测试 | 这些Redis核心知识,你都掌握了吗?](./docs/314209.md) * [结束语 | 从学习Redis到向Redis学习](./docs/316679.md)