腾讯,干掉Redis项目,正式开源Tendis,太牛皮啦

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。


来源:腾讯开源

项目简介

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 级存储。

去中心化架构

类似于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开源,能够有助于业界其他相关领域的应用。

同时通过Tendis开源项目的平台,打造一个行业标杆级的分布式KV存储数据库产品,期待与您一起共建Tendis项目!

https://github.com/Tencent/Tendis

国内镜像地址:

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

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7天前
|
NoSQL Java API
springboot项目Redis统计在线用户
通过本文的介绍,您可以在Spring Boot项目中使用Redis实现在线用户统计。通过合理配置Redis和实现用户登录、注销及统计逻辑,您可以高效地管理在线用户。希望本文的详细解释和代码示例能帮助您在实际项目中成功应用这一技术。
15 3
|
1月前
|
存储 NoSQL Java
Spring Boot项目中使用Redis实现接口幂等性的方案
通过上述方法,可以有效地在Spring Boot项目中利用Redis实现接口幂等性,既保证了接口操作的安全性,又提高了系统的可靠性。
37 0
|
6月前
|
缓存 NoSQL Java
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson(一)
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson
91 0
|
3月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
|
5月前
|
存储 NoSQL Java
大事件后端项目34_登录优化----redis_SpringBoot集成redis
大事件后端项目34_登录优化----redis_SpringBoot集成redis
大事件后端项目34_登录优化----redis_SpringBoot集成redis
|
3月前
|
JSON NoSQL 数据可视化
|
4月前
|
前端开发 JavaScript NoSQL
软件开发常见流程之若依项目修改,前后端本地启动,本地必须有Redis+Navicate启动数据库
软件开发常见流程之若依项目修改,前后端本地启动,本地必须有Redis+Navicate启动数据库
|
4月前
|
存储 缓存 NoSQL
网页设计,若依项目修改(It must be done)04在线用户展示---仅仅从Redis取一下数据做展示,查看若依存储的资料,用RDM
网页设计,若依项目修改(It must be done)04在线用户展示---仅仅从Redis取一下数据做展示,查看若依存储的资料,用RDM
|
5月前
|
NoSQL 大数据 Redis
分享5款.NET开源免费的Redis客户端组件库
分享5款.NET开源免费的Redis客户端组件库
|
5月前
|
NoSQL Redis 数据安全/隐私保护
大事件后端项目35——登录优化_redis_主动失效机制实现
大事件后端项目35——登录优化_redis_主动失效机制实现