Tidis:兼容 Redis 协议的分布式 NoSQL 数据库
Tidis 使用 Go 语言编写,提供 Redis 协议 API ,支持字符串、列表、哈希、集合和排序集合等数据结构。它类似于一个中间层,负责协议转换和数据结构计算,并由后端的分布式存储系统提供支持。存储系统基于 Raft 协议进行数据复制,并使用两阶段提交 (2PC) 来保证分布式事务的一致性。
产品特性
- Redis 协议兼容:轻松迁移现有 Redis 应用。
- 线性扩展能力:通过添加节点实现横向扩展。
- 存储与计算分离:灵活扩展存储和计算资源。
- 数据安全:Raft 复制确保数据不丢失。
- 事务支持:提供分布式事务功能。
架构
Tidis 基于 TiKV 构建,主要组件包括:
- Placement Driver (PD):作为 TiKV 系统的“大脑”,管理节点、存储、区域映射等元数据,并负责数据放置和负载均衡决策。PD 会定期检查复制约束,自动平衡负载。