2022-05-18 23:08:32
Tendis是腾讯开源的分布式高性能KV存储数据库,并非“干掉Redis项目”,而是作为Redis的兼容替代方案,提供大容量、低成本、强持久化的存储能力。
一、项目背景与定位兼容Redis协议
支持Redis主要数据结构(如String、Hash、List、Set、ZSet)和接口,兼容大部分原生Redis命令,业务迁移成本低。
示例:游戏、社交等场景中,原有Redis业务可直接切换至Tendis,无需修改代码。
持久化存储与大容量支持
使用RocksDB作为存储引擎,数据以特定格式持久化存储,最大支持PB级容量,远超Redis的内存限制。
对比:原生Redis依赖内存,成本高昂;Tendis通过磁盘存储降低80%成本,适合冷数据降冷。
去中心化集群架构
类似Redis Cluster,所有节点通过Gossip协议通信,无中心节点单点故障风险。
支持指定HashTag控制数据分布,运维成本低,可扩展至1000个节点。

水平扩展与故障自动切换
集群支持动态增删节点,数据按Slot在节点间迁移,扩容/缩容对业务透明。
主备节点通过Binlog复制数据,故障时Slave自动提升为Master,保障服务连续性。
冷热混合存储优化
Redis与Tendis存储版协同工作,热数据保留在Redis保证性能,冷数据降冷至Tendis降低成本。
效果:冷数据存储成本降低80%,同时热数据访问性能不受影响。
兼容Redis协议,需大容量(如用户画像、日志、历史订单)且访问频率较低的场景。
金融、电商等对数据安全性要求高的场景,避免Redis因内存故障导致数据丢失。
通过磁盘存储替代内存,显著降低存储成本,同时保持较高性能。
避免Redis因Fork子进程导致的主线程阻塞问题,减少内存预留开销。
持续兼容Redis特性(如LUA脚本支持)、优化RocksDB性能抖动问题。
探索软硬结合方案(如利用新硬件特性)进一步提升吞吐量与延迟。
支持与其他数据库(如MySQL、MongoDB)的迁移工具,降低数据迁移成本。
提供PaaS化运维平台,简化集群管理、监控与故障排查。
GitHub:
国内镜像:
总结:Tendis并非替代Redis,而是通过兼容协议与分布式架构,为温冷数据存储提供更优选择。其大容量、低成本、强持久化的特性,结合腾讯的规模化验证与开源生态,有望成为分布式KV存储领域的重要力量。