Tendis 使用去中心化集群架构,每个数据节点都拥有全部的路由信息,用户可以访问集群中的任意节点,并且通过 redis 的 move 协议,最终路由到正确的节点。
每个 Tendis 节点维护各自的 slot 数据,任意两个 master 节点之间的 slot 不重复,master 节点之间支持基于 slot 的数据搬迁,主备节点之间通过 binlog 实现数据复制。
所有节点之间通过 gossip 协议进行通讯,类似于 redis cluster 的分布式实现,所有节点通过 gossip 协议通讯,可指定 hashtag 来控制数据分布和访问,使用和运维成本极低。
适用场景
兼容 Redis 协议,需要大容量且较高访问性能的温冷数据存储场景
适合成本为主要考虑因素,业务数据有高持久化要求的业务场景
解决原生 Redis 固有的 fork 问题而预留部分内存问题
主要特性
兼容 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 本身的性能抖动问题。
探索更多软硬结合方案,基于新硬件特性,发挥更大的数据库性能。
支持异构数据互通能力,降低异构数据库的迁移成本
运维管理能力全面提升,PaaS 能力持续增强
Tendis 目前已在腾讯内外部包括游戏、视频、社交、电商等多个行业提供数据库支撑。
https://github.com/Tencent/Tendis
欢迎提出你的 issue 和 PR!
国内镜像地址:
https://git.code.tencent.com/Tencent_Open_Source/Tendis
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。