这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
Redis 方案
Redis 是高性能的键值存储,其原子递增命令非常适合用于生成分布式 ID。本章详细介绍 Redis 方案的实现、集群支持和性能优化。
Redis 方案通常使用 INCR 或 INCRBY 生成递增数字。它比数据库自增吞吐更高,接入也相对简单,适合把 ID 生成从业务数据库中拆出来。通过按业务维护不同 key,还可以为订单、用户、消息等场景提供独立序列。
这个方案的系统设计重点在可用性和持久化。Redis 是中心化依赖,一旦不可用,核心写入链路可能停摆;如果持久化策略不当,重启后序列回退会导致重复 ID;如果使用集群,不同 slot、主从切换和复制延迟也会影响一致性预期。ID 服务不能只看单机 QPS。
本章会讲 Redis 单点、主从、哨兵和集群模式下的取舍,也会讨论批量取号、本地缓存、按业务分 key 和异常恢复。对于高峰写入场景,应用可以一次申请一段 ID 缓存在本地,减少 Redis 往返,但也要接受实例崩溃造成的 ID 空洞。
完成本章后,你应当能设计一个基于 Redis 的 ID 服务,并清楚说明它的故障边界:什么时候会暂停发号,什么时候可能产生空洞,如何避免回退重复,以及如何通过监控发现序列耗尽或异常增长。