<antirez>
8 hours ago
- Redis集群开发始于2011年3月,但由于早期失误和优先级变化,花了近四年时间才发布首个候选版本(3.0.0-rc1)。
- 该项目最初因为扩展被视为关键而仓促启动,但Redis本身还不够成熟,导致多次暂停以专注于更基础的功能,如持久化、复制和延迟优化。
- 作者在开始时缺乏分布式编程知识,导致最初设计有缺陷,后来在学习基础知识后重新设计了方案。
- Redis集群提供数据分片、在线重新分片和故障转移功能,但只保证最终一致性,分区期间可用性受限——它既不是CP系统也不是AP系统。
- 为了减少数据分歧,少数分区将不可用,复制和客户端回复一起发送,并选择分歧最小的从节点进行故障转移。
- 该设计牺牲了理论保证以换取实际效益:低开销、完整的Redis API支持,且无数据结构大小限制。
- 候选版本是一个最小可行产品,旨在获得用户采用,未来计划改进:多数据中心支持、更好的写入安全性、自动节点平衡以及缓存模式。
- 作者强调现在是发布当前版本并根据用户反馈迭代的时候了,而不是为了完美功能而进一步延迟。