项目介绍Tendis是腾讯互娱CROSDBA团队&腾讯云数据库团队自主设计开发的分布式高性能KV存储数据库,兼容Redis核心数据结构和接口。可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量、高访问性能的冷热数据存储场景。Tendis已经应用于腾讯内部和外部的大型项目。集群架构图Tendis采用去中心化的集群架构,每个数据节点都有所有的路由信息??,用户可以访问集群中的任意一个节点,最终通过redis的move协议路由到正确的节点。每个Tendis节点维护自己的槽数据。任意两个主节点之间的时隙不重复。主节点支持基于槽位的数据迁移,主备节点通过binlog实现数据复制。所有节点通过gossip协议进行通信,类似于redis集群的分布式实现。所有节点都通过八卦协议进行通信。可以指定Hashtags来控制数据的分发和访问,使用和运维成本极低。适用场景兼容Redis协议。需要大容量和高访问性能的冷暖数据存储场景适用于主要考虑成本的场景,对业务数据持久化要求高的业务场景解决原生Redis固有的fork问题和预留部分内存问题.主要特点是兼容Redis协议。完全兼容Redis协议,支持Redis的主要数据结构和接口,兼容大部分Redis原生命令。持久化存储使用rocksdb作为存储引擎,所有数据都以特定格式存储在rocksdb中,最高支持PB级存储。去中心化架构类似于redis集群的分布式实现。所有节点通过八卦协议进行通信,可以指定hashtags来控制数据分发和访问。使用和运维成本极低。水平扩展集群支持节点增删改查,数据可按槽位在任意两个节点间迁移。扩缩容过程对应用运维人员透明,支持扩容到1000个节点。自动故障切换自动检测故障节点。当出现故障时,slave会自动提升为master继续对外提供服务。Tendis冷热混合存储的关键部件得益于Tendis存储版本的设计和内部优化。Redis和Tendis存储版可以配合成为Tendis冷热混合存储。混合存储区非常适合KV存储场景,兼顾性能和成本。对于在redis中占用大量存储空间的冷数据,冷却后成本最高可降低80%,同时保证redis中热数据的访问性能。项目规划继续完善与Redis的兼容性,包括对LUA等命令的支持进一步提升Tendis的性能,降低rocksdb自身的性能抖动。探索更多基于新硬件功能的软件和硬件解决方案,以最大限度地提高数据库性能。支持异构数据互通,降低异构数据库迁移成本。运维管理能力全面提升,PaaS能力不断增强。Tendis目前为腾讯内外多个行业提供数据库支持,包括游戏、视频、社交、电商等。感兴趣的童鞋可以去GitHub了解更多:https://github.com/Tencent/Tendis
