[发明专利]一种基于ZooKeeper的Redis集群方法有效
申请号: | 201810544111.7 | 申请日: | 2018-05-29 |
公开(公告)号: | CN108833503B | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 刘发贵;周晓场 | 申请(专利权)人: | 华南理工大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/24 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 何淑珍;江裕强 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 zookeeper redis 集群 方法 | ||
本发明公开了一种基于ZooKeeper的Redis集群方法。该方法以Zookeeper作为一致性中间件来维护的分布式Redis集群的数据分片信息,客户端通过ZooKeeper获得Redis集群的数据分片信息并建立路由算法,从而使Redis客户端与服务端之间不需要通过代理层即可直接通信,并实现Redis集群的动态扩缩容和数据自动迁移的能力。同时,该方法结合Redis‑Sentinel和ZooKeeper实现了集群故障的自动转移能力,保证了Redis集群的高可用性。本发明减少Redis集群代理层所带来的额外网络开销,提高Redis集群的性能,同时保证Redis集群的扩展能力,数据自动迁移能力和可用性。
技术领域
本发明属于分布式Key-Value系统领域内的一种集群方法,尤其涉及一种基于ZooKeeper的Redis集群方法及其实现。
背景技术
作为NoSQL(Not Only Sql)数据库中一个子集的Key-Value存储系统,如Redis等,采用简单的Key-Value数据模型,并基于内存提供了类似于传统Hash表的快速查询操作。它们通常作为提升数据中心或者应用的数据访问速度的重要手段,已经成为了很多数据中心中关键基础设施的重要组成部分。在工业界,很多大公司,如Facebook、Amazon等,都部署着大规模的分布式Key-Value系统集群充当关键系统的数据层。可见这些Key-Value存储系统的性能将直接影响到很多大规模服务的QoS(服务质量),提升分布式Key-Value系统的性能具有很大的意义和价值。
Redis是一个基于内存的Key-Value数据库,它把所有的数据都存在了内存中,提供了很快的访问速度,同时提供了丰富的特性,如Key-Value对的过期和淘汰策略、复制功能和Redis Sentinel可用性方案等,所以得到了很多用户的青睐,已经成为目前最著名的开源Key-Value系统之一。然而,虽然Redis在分布式集群方案方面已经有了Codis和Twemproxy这些目前主流的集群方案,但这些方案采用代理方式来对客户端的请求进行转发造成集群性能的损失,仍存在着不足,所以本发明提供了一种基于ZooKeeper的Redis集群方法,实现了一个支持在线动态扩缩容,并且可以自动进行数据迁移的更高性能且高可用的分布式Redis集群。
ZooKeeper是Apache开源的一个分布式服务,可以为分布式程序提供协调服务。ZooKeeper本身就是一个可靠的、可扩展的分布式软件,可以为分布式应用提供一致性服务,典型的应用场景是配置管理、域名服务、集群管理和分布式锁等。ZooKeeper提供了比较简单的数据模型,它维护了一个类似于文件系统数据结构。每个节点被称作一个znode,所有的znode都可以由一条路径唯一表示。但与文件系统不同的是,ZooKeeper中每一个znode都可以存储数据,所有对znode数据的读写操作也都是原子性的。用户可以监控znode,当znode数据发生变化,或者子节点发生变化等,设置监控的客户端可以收到通知,这也是Zookeeper的核心功能,很多应用功能的开发都基于这个特性。
发明内容
本发明的目的在于针对目前Redis在集群方案和网络处理方面的不足,提出并实现了一种基于ZooKeeper的支持动态扩缩容、数据自动迁移并且更高性能的高可用Redis集群方法。
为了实现本发明,采用的主要技术方案如下。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810544111.7/2.html,转载请声明来源钻瓜专利网。