查看原文
其他

腾讯 Tendis 正式开源,兼容 Redis 协议企业级分布式高性能 KV 存储数据库

Java精选 2022-08-09

>>号外:关注“Java精选”公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料、开源项目。

项目简介

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问题而预留部分内存问题
主要特性
1、兼容Redis协议
完全兼容redis协议,支持redis主要数据结构和接口,兼容大部分原生Redis命令。
2、持久化存储
使用rocksdb作为存储引擎,所有数据以特定格式存储在rocksdb中,最大支持PB级存储。
3、去中心化架构
类似于redis cluster的分布式实现,所有节点通过gossip协议通讯,可指定hashtag来控制数据分布和访问,使用和运维成本极低。
4、水平扩展
集群支持增删节点,并且数据可以按照slot在任意两节点之间迁移,扩容和缩容过程中对应用运维人员透明,支持扩展至1000个节点。
5、故障自动切换
自动检测故障节点,当故障发生后,slave会自动提升为master继续对外提供服务。
6、Tendis冷热混合存储关键组件
得益于Tendis存版的设计和内部优化,Redis和Tendis存储版可以一起工作成为Tendis冷热混合存储。混合存储区非常适用于KV存储场景,并平衡了性能和成本。对于redis占用大量存储空间的冷数据降冷后可以最多减少80%的成本,同时保证了热数据在redis的访问性能。
项目规划
1、持续完善对Redis的兼容性,包括支持LUA等命令
2、进一步提升Tendis的性能,减少rocksdb本身的性能抖动问题。
3、探索更多软硬结合方案,基于新硬件特性,发挥更大的数据库性能。
4、支持异构数据互通能力,降低异构数据库的迁移成本
5、运维管理能力全面提升,PASS能力持续增强
Tendis期待与您开源共建
Tendis目前已在腾讯内外部包括游戏、视频、社交、电商等多个行业提供数据库支撑。我们期望通过将Tendis开源,能够有助于业界其他相关领域的应用。感兴趣的小伙伴们可以去详细了解一下:

https://github.com/Tencent/Tendis

国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/Tendis

来源:腾讯开源

往期精选  点击标题可跳转

IDEA JetBrains 推出 Mono 编程字体真牛逼,更适合程序开发人员!

中国铁路 12306 网站的高并发架构带来的思考?研究分析后,果然超牛逼…

为什么阿里规范中要求代码禁用 static 修饰 SimpleDateFormat?

心惊肉跳,新来的程序媛妹纸 rm -rf 把公司整个数据库删没了!

为什么很多 Spring Boot 开发者放弃了 Tomcat,选择了 Undertow ?

HTTPS 利用 Nginx 反向代理,实现远程调试本地代码

使用 Redis 分布式锁造成重大事故,导致超卖 100 瓶飞天茅台!

面试官灵魂拷问:为什么代码规范要求 SQL 语句不要过多的 join?

GET 和 POST 请求的本质区别是什么?原谅我一直理解错了

Spring Boot 解决 json 日期格式化疑难问题,基于注解实现全局日期格式化

资深程序员建议放弃 JSP 吧,否则你可能“无路可走”!

点个赞,就知道你“在看”!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存