点击上方“芋道源码”,选择“设为星标”
管她前浪,还是后浪?
能浪的浪,才是好浪!
每天 8:55 更新文章,每天掉亿点点头发...
源码精品专栏
原创 | Java 2020 超神之路,很肝~
中文详细注释的开源项目
RPC 框架 Dubbo 源码解析
网络应用框架 Netty 源码解析
消息中间件 RocketMQ 源码解析
数据库中间件 Sharding-JDBC 和 MyCAT 源码解析
作业调度中间件 Elastic-Job 源码解析
分布式事务中间件 TCC-Transaction 源码解析
Eureka 和 Hystrix 源码解析
Java 并发源码
来源:腾讯开源
项目简介
集群架构
适用场景
主要特性
项目规划
Tendis期待与您开源共建
Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。
Tendis目前已经被应用到腾讯内、外部大型项目中。
[Tendis使用去中心化集群架构,每个数据节点都拥有全部的路由信息,用户可以访问集群中的任意节点,并且通过redis的move协议,最终路由到正确的节点。
[每个Tendis节点维护各自的slot数据,任意两个master节点之间的slot不重复,master节点之间支持基于slot的数据搬迁,主备节点之间通过binlog实现数据复制。
[所有节点之间通过gossip协议进行通讯,类似于redis cluster的分布式实现,所有节点通过gossip协议通讯,可指定hashtag来控制数据分布和访问,使用和运维成本极低。
1、兼容Redis协议,需要大容量且较高访问性能的温冷数据存储场景
2、适合成本为主要考虑因素,业务数据有高持久化要求的业务场景
3、解决原生Redis固有的fork问题而预留部分内存问题
兼容Redis协议
完全兼容redis协议,支持redis主要数据结构和接口,兼容大部分原生Redis命令。
持久化存储
使用 rocksdb 作为存储引擎,所有数据以特定格式存储在 rocksdb 中,最大支持 PB 级存储。
良心艿:有精力的胖友,可以研究下 rocksdb 存储引擎,很多公司在自研低成本的 KV 数据库时,都采用它!
去中心化架构
类似于redis cluster的分布式实现,所有节点通过gossip协议通讯,可指定hashtag来控制数据分布和访问,使用和运维成本极低。
水平扩展
集群支持增删节点,并且数据可以按照slot在任意两节点之间迁移,扩容和缩容过程中对应用运维人员透明,支持扩展至1000个节点。
故障自动切换
自动检测故障节点,当故障发生后,slave会自动提升为master继续对外提供服务。
Tendis冷热混合存储关键组件
得益于Tendis存版的设计和内部优化,Redis和Tendis存储版可以一起工作成为Tendis冷热混合存储 。混合存储区非常适用于KV存储场景,并平衡了性能和成本。
对于redis占用大量存储空间的冷数据降冷后可以最多减少80%的成本,同时保证了热数据在redis的访问性能。
良心艿:技术没有银弹,很多时候是一种取舍。在取舍的过程中,找到一个合适的平衡点。
1、持续完善对Redis的兼容性,包括支持LUA等命令
2、进一步提升Tendis的性能,减少rocksdb本身的性能抖动问题。
3、探索更多软硬结合方案,基于新硬件特性,发挥更大的数据库性能。
4、支持异构数据互通能力,降低异构数据库的迁移成本
5、运维管理能力全面提升,PaaS能力持续增强
Tendis目前已在腾讯内外部包括游戏、视频、社交、电商等多个行业提供数据库支撑。我们期望通过将Tendis开源,能够有助于业界其他相关领域的应用 。
同时通过Tendis开源项目的平台,打造一个行业标杆级的分布式KV存储数据库产品,期待与您一起共建Tendis项目!
https://github.com/Tencent/Tendis
请给项目 一个 Star ! 欢迎提出你的 issue 和 PR!
国内镜像地址:
https://git.code.tencent.com/TencentOpenSource/Tendis
欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:
已在知识星球更新源码解析如下:
最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。
提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
兄弟,艿一口,点个赞!????