# SUMMARY * [简介](./README.md) * [开篇词|为什么你要学习etcd?](./docs/335186.md) * [01 | etcd的前世今生:为什么Kubernetes使用etcd?](./docs/335204.md) * [02 | 基础架构:etcd一个读请求是如何执行的?](./docs/335932.md) * [03 | 基础架构:etcd一个写请求是如何执行的?](./docs/336766.md) * [04 | Raft协议:etcd如何实现高可用、数据强一致的?](./docs/337604.md) * [05 | 鉴权:如何保护你的数据安全?](./docs/338524.md) * [06 | 租约:如何检测你的客户端存活?](./docs/339337.md) * [07 | MVCC:如何实现多版本并发控制?](./docs/340226.md) * [08 | Watch:如何高效获取数据变化通知?](./docs/341060.md) * [09 | 事务:如何安全地实现多key操作?](./docs/341935.md) * [10 | boltdb:如何持久化存储你的key-value数据?](./docs/342527.md) * [11 | 压缩:如何回收旧版本数据?](./docs/342891.md) * [12 | 一致性:为什么基于Raft实现的etcd还会出现数据不一致?](./docs/343042.md) * [13 | db大小:为什么etcd社区建议db大小不超过8G?](./docs/343245.md) * [14 | 延时:为什么你的etcd请求会出现超时?](./docs/343645.md) * [15 | 内存:为什么你的etcd内存占用那么高?](./docs/344621.md) * [16 | 性能及稳定性(上):如何优化及扩展etcd性能?](./docs/345588.md) * [17 | 性能及稳定性(下):如何优化及扩展etcd性能?](./docs/346471.md) * [18 | 实战:如何基于Raft从0到1构建一个支持多存储引擎分布式KV服务?](./docs/347136.md) * [19 | Kubernetes基础应用:创建一个Pod背后etcd发生了什么?](./docs/347992.md) * [20 | Kubernetes高级应用:如何优化业务场景使etcd能支撑上万节点集群?](./docs/348633.md) * [21 | 分布式锁:为什么基于etcd实现分布式锁比Redis锁更安全?](./docs/350285.md) * [22 | 配置及服务发现:解析etcd在API Gateway开源项目中应用](./docs/351113.md) * [23 | 选型:etcd/ZooKeeper/Consul等我们该如何选择?](./docs/351898.md) * [24 | 运维:如何构建高可靠的etcd集群运维体系?](./docs/352642.md) * [特别放送 | 成员变更:为什么集群看起来正常,移除节点却会失败呢?](./docs/349619.md) * [结课测试题|这些相关etcd知识你都掌握了吗?](./docs/353418.md) * [结束语 | 搞懂etcd,掌握通往分布式存储系统之门的钥匙](./docs/354292.md)