本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

是一款分布式Key-Value数据库,其设计借鉴了Google Spanner和HBase,但实现更为简洁,无需依赖任何分布式文件系统。通过Rust语言实现Raft共识算法,并将共识状态存储于RocksDB中,TiKV保证数据一致性。引入Placement Driver(放置驱动)实现分片,支持数据自动迁移。事务模型参考Google Percolator并进行了性能优化,支持快照隔离(SI)、带锁快照隔离(SQL:SELECT ... FOR UPDATE)以及分布式事务中的外部一致性读写。
地理复制:TiKV使用Raft和Placement Driver支持跨地域数据复制。
水平扩展:借助Placement Driver和精心设计的Raft组,TiKV具备出色的水平扩展能力,可轻松扩展至100+ TB数据规模。
一致性分布式事务:类似Google Spanner,TiKV支持外部一致的分布式事务。
协处理器支持:参考HBase,TiKV实现了协处理器框架以支持分布式计算。
与TiDB协作:通过内部优化,TiKV与TiDB协同工作,提供兼具高水平扩展能力、外部一致事务及支持关系型与NoSQL设计模式的数据库解决方案。
!TiKV软件栈
Placement Driver:集群管理器,定期检查复制约束以自动平衡负载和数据。
Store:每个Store包含一个RocksDB实例,负责将数据存储至本地磁盘。
Region:KV数据迁移的基本单元,每个Region会复制到多个节点,这些副本组成一个Raft组。
Node:集群中的物理节点,每个节点包含一个或多个Store,每个Store包含多个Region。
节点启动时,Node、Store和Region的元数据会注册到PD,各Region和Store的状态会定期上报至PD。
可通过Docker Compose快速测试TiKV与TiDB:
git clone [***] cd tidb-docker-compose docker-compose up -d
启动后,可通过mysql -h 127.0.0.1 -P 4000 -u root连接数据库,并访问http://localhost:3000/查看集群监控指标。
TiKV代码库主要使用Rust编写,包含C++(RocksDB)和Go(gRPC)组件。为确保一致性,项目广泛使用代码检查和自动格式化工具,且依赖Rust nightly版本以使用最新特性。
构建TiKV需至少安装以下工具:
git - 版本控制工具rustup - Rust工具链管理器awk - 模式扫描/处理语言cmake - 构建工具(gRPC依赖)go - 编程语言(gRPC依赖)make - 构建工具(运行常用工作流)clang 或 gcc - C编译器工具链git clone [***] cd tikv # 后续操作默认在此目录下执行
rustup是Rust官方工具链管理器,类似Ruby的rvm或rbenv。TiKV使用RUST_VERSION文件指定的Rust版本,并依赖rustfmt组件:
rustup override set `tail -n 1 RUST_VERSION` rustup component add rustfmt-preview --toolchain `tail -n 1 RUST_VERSION`
TiKV提供
Makefile简化常用工作流,也可直接使用cargo操作Rust项目。
构建TiKV:
make build
开发过程中,可使用cargo check快速检查代码(语法、借用检查、 lint)而不完整编译,配合cargo-watch可监听文件变化并自动执行检查:
cargo install cargo-watch cargo watch -s "cargo check --features dev"
提交PR前,建议运行dev任务进行代码格式化、启用clippy检查并执行测试:
make dev
运行完整测试套件或指定测试:
# 完整测试 make test # 指定测试 cargo test $TESTNAME
所有PR会通过CI自动测试,合并前需确保CI测试通过。
如需使用TiDB和PD等组件,建议参考开发指南,至少需运行pd-server与tikv-server进行集成测试。
Ansible部署:官方Ansible部署指南提供集群部署推荐方案。
Docker部署:参考Docker部署指南部署TiKV及其他集群组件。
二进制部署:如需自定义部署,可参考二进制部署指南。
TiKV是TiDB项目的组件,需与PD(集群管理器)配合运行。目前支持的客户端包括TiDB Go客户端和TiSpark Java客户端。欢迎开发其他语言客户端。
详见配置指南了解各类配置选项。
提交补丁和贡献流程详见CONTRIBUTING。
TiKV基于Apache 2.0许可,详见LICENSE文件。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429