一种基于ZooKeeper的Redis集群方法技术

技术编号:19486995 阅读:76 留言:0更新日期:2018-11-17 11:33
本发明专利技术公开了一种基于ZooKeeper的Redis集群方法。该方法以Zookeeper作为一致性中间件来维护的分布式Redis集群的数据分片信息,客户端通过ZooKeeper获得Redis集群的数据分片信息并建立路由算法,从而使Redis客户端与服务端之间不需要通过代理层即可直接通信,并实现Redis集群的动态扩缩容和数据自动迁移的能力。同时,该方法结合Redis‑Sentinel和ZooKeeper实现了集群故障的自动转移能力,保证了Redis集群的高可用性。本发明专利技术减少Redis集群代理层所带来的额外网络开销,提高Redis集群的性能,同时保证Redis集群的扩展能力,数据自动迁移能力和可用性。

【技术实现步骤摘要】
一种基于ZooKeeper的Redis集群方法
本专利技术属于分布式Key-Value系统领域内的一种集群方法,尤其涉及一种基于ZooKeeper的Redis集群方法及其实现。
技术介绍
作为NoSQL(NotOnlySql)数据库中一个子集的Key-Value存储系统,如Redis等,采用简单的Key-Value数据模型,并基于内存提供了类似于传统Hash表的快速查询操作。它们通常作为提升数据中心或者应用的数据访问速度的重要手段,已经成为了很多数据中心中关键基础设施的重要组成部分。在工业界,很多大公司,如Facebook、Amazon等,都部署着大规模的分布式Key-Value系统集群充当关键系统的数据层。可见这些Key-Value存储系统的性能将直接影响到很多大规模服务的QoS(服务质量),提升分布式Key-Value系统的性能具有很大的意义和价值。Redis是一个基于内存的Key-Value数据库,它把所有的数据都存在了内存中,提供了很快的访问速度,同时提供了丰富的特性,如Key-Value对的过期和淘汰策略、复制功能和RedisSentinel可用性方案等,所以得到了很多用户本文档来自技高网...

【技术保护点】
1.一种基于ZooKeeper的Redis集群方法,其特征在于用第三方中间件ZooKeeper来提供一致性服务,统一维护Redis集群的数据分片信息,客户端通过ZooKeeper获得Redis集群的数据分片信息并建立路由算法,实现Redis集群的动态扩缩容和数据自动迁移的能力,并结合Redis‑Sentinel,为每个Redis主节点配备若干个备节点,利用Redis备节点可以对Redis主节点进行数据同步复制的能力和Redis‑Sentinel集群来保障Redis集群的可用性,同时通过ZooKeeper与客户端通信来将后端Redis主节点和备节点的切换信息通知给客户端,实现集群故障的自动转移,...

【技术特征摘要】
1.一种基于ZooKeeper的Redis集群方法,其特征在于用第三方中间件ZooKeeper来提供一致性服务,统一维护Redis集群的数据分片信息,客户端通过ZooKeeper获得Redis集群的数据分片信息并建立路由算法,实现Redis集群的动态扩缩容和数据自动迁移的能力,并结合Redis-Sentinel,为每个Redis主节点配备若干个备节点,利用Redis备节点可以对Redis主节点进行数据同步复制的能力和Redis-Sentinel集群来保障Redis集群的可用性,同时通过ZooKeeper与客户端通信来将后端Redis主节点和备节点的切换信息通知给客户端,实现集群故障的自动转移,保证Redis集群的高可用性。2.根据权利要求1所述的一种基于ZooKeeper的Redis集群方法,其特征在于Redis集群的数据分片信息被维护在ZooKeeper集群上,每个Redis节点对应ZooKeeper上一个znode节点,znode节点的存储的数据包括:节点是否有效,节点更新时间,Redis节点IP地址,Redis节点端口,迁移时间,节点权重,slot信息;客户端通过ZooKeeper获得Redis集群的信息并构建路由算法,并采用murmurhash3算法将Key映射到slot。3.根据权利要求1所述的一种基于ZooKeeper的Redis集群方法,其特征在于Redis集群的动态扩缩容能力,具体是:当需要增删节点的时候,依据各个节点的权重重新计算每个节点负责的slot数量,并把多余的slot分配给新加入的节点或者把原来分配给被删除节...

【专利技术属性】
技术研发人员:刘发贵周晓场
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1