一款高性能分布式存储系统

文摘   2025-01-26 08:00   广东  
| 项目介绍

Tendis是由腾讯开发的一款高性能分布式存储系统,能够处理大规模数据存储需求的解决方案,它完全兼容Redis协议和命令,用户可以使用现有的Redis客户端访问Tendis,应用程序几乎无需修改。Tendis使用RocksDB作为存储引擎,确保所有数据持久化存储到磁盘上,支持PB级别的存储容量。

| 功能特点


                            大容量存储:通过使用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 --recursivegit submodule update --init --recursivemkdir bulidcd 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
                                              关注公众号,为你推荐更多原创干货!

                                              更多内容也可看笔者出版图书

                                              —————————

                                              幼稚猿
                                              分享各类技术资讯和教程,出版多本IT图书《Django+Vue系统架构设计与实现》、《Golang+Vue.js商城项目实战》等
                                               最新文章