| 功能特点
大容量存储:通过使用RocksDB作为存储引擎,Tendis能够支持PB级别的存储容量,满足大规模数据存储需求。
高性能:Tendis在性能方面进行了多方面的优化,能够在高并发场景下保持出色的性能表现。它支持在线数据迁移,确保集群的扩展性和性能的线性提升。
高可用性:Tendis采用去中心化的分布式架构和自动故障检测和故障转移机制,确保在主节点故障时,副本节点能够自动接管,保证服务的连续性。
兼容Redis:Tendis完全兼容Redis协议和命令,用户无需修改应用程序即可使用Tendis替代Redis,降低迁移成本。
低成本:对于需要处理大量冷数据的业务场景,Tendis提供了大幅降低存储成本的解决方案。同时,它还支持与Redis协同工作,形成混合存储版本,平衡性能和成本。
| 系统架构
去中心化分布式集群:Tendis采用去中心化的分布式架构,类似于Redis集群。节点间通过gossip协议进行通信,支持节点自动发现、故障节点检测和主节点故障时的自动切换。这种架构确保了集群的高可用性和扩展性。
节点架构:每个Tendis节点维护各自的slot数据,任意两个master节点之间的slot不重复。master节点之间支持基于slot的数据搬迁,主备节点之间通过binlog实现数据复制。
| 应用场景
兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。
成本为主要考虑因素、业务数据有高持久化要求的业务场景。
需要解决原生Redis固有的fork问题而预留部分内存问题的场景。
| 系统要求与部署
环境要求:
g++(c++17 所需,版本 >= 5.5)
cmake(版本 >= 3.13.0)
安装
$ git clone https://github.com/Tencent/tendis.git --recursive
$ git submodule update --init --recursive
$ mkdir bulid
$ cd build & cmake ..
$ make -j12
运行
$ ./build/bin/tendisplus tendisplus.conf
使用redis-cli连接服务
$ redis-cli -p 51002
测试
$ sh ./testall.sh
如需了解更多信息,可以访问其官方网站或查阅相关的技术文档。
GitHub地址
https://github.com/Tencent/Tendis/tree/unstable?tab=readme-ov-file#Get-Started
更多内容也可看笔者出版图书!