近日,腾讯宣布开源一个与 Redis 协议完全兼容的高性能分布式存储系统Tendis。
据悉,Tendis 是腾讯互娱 CROS DBA 团队 & 腾讯云数据库团队自主设计和研发的分布式高性能 KV 存储数据库,兼容 Redis 核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容 Redis 协议、需要大容量且较高访问性能的温冷数据存储场景。Tendis 目前已经被应用到腾讯内、外部大型项目中。
据项目官方文档介绍,Tendis 的主要特性包括:
- 兼容 Redis 协议 。完全兼容 redis 协议,支持 redis 主要数据结构和接口,兼容大部分原生Redis命令。
- 持久化存储 。使用 rocksdb 作为存储引擎,所有数据以特定格式存储在 rocksdb 中,最大支持 PB 级存储。
- 去中心化架构 。类似于 redis cluster 的分布式实现,所有节点通过 gossip 协议通讯,可指定 hashtag 来控制数据分布和访问,使用和运维成本极低。
- 水平扩展 。集群支持增删节点,并且数据可以按照 slot 在任意两节点之间迁移,扩容和缩容过程中对应用运维人员透明,支持扩展至 1000 个节点。
- 故障自动切换 。自动检测故障节点,当故障发生后,slave 会自动提升为 master 继续对外提供服务。
- Tendis冷热混合存储关键组件 。得益于 Tendis 存版的设计和内部优化,Redis 和 Tendis 存储版可以一起工作成为 Tendis 冷热混合存储。混合存储区非常适用于 KV 存储场景,并平衡了性能和成本。对于 redis 占用大量存储空间的冷数据降冷后可以最多减少 80% 的成本,同时保证了热数据在 redis 的访问性能。
据悉,项目团队下一步规划是将持续完善对 Redis 的兼容性,包括支持 LUA 等命令,同时进一步提升 Tendis 的性能,包括减少 rocksdb 本身的性能抖动问题,探索更多软硬结合方案,基于新硬件特性发挥更大的数据库性能,支持异构数据互通能力等。
Tendis 官网地址: http://tendis.cn/#/