[发明专利]一种Codis集群扩容的方法和装置有效
申请号: | 201710946406.2 | 申请日: | 2017-10-12 |
公开(公告)号: | CN109656709B | 公开(公告)日: | 2021-08-10 |
发明(设计)人: | 赵明珠 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54;H04L29/06 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 codis 集群 扩容 方法 装置 | ||
本发明公开了一种Codis集群扩容的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据待创建扩容组的数量G和每个待创建扩容组所需的Redis实例的个数S生成Redis实例队列;根据当前集群可用的槽位创建G个扩容组,并且读取所述Redis实例队列,向创建的每个扩容组中添加S个Redis实例。该实施方式能够动态规划Codis集群所需要创建的组和组中所需添加的主从Redis实例,并且自适应动态创建组,以及为创建的组添加主从Redis实例,减少人工参与,降低了成本,提高了扩容效率和准确度。
技术领域
本发明涉及计算机技术领域,尤其涉及一种Codis集群扩容的方法和装置。
背景技术
开源项目Codis是一个分布式的Redis解决方案(Redis是基于内存亦可持久化的日志型、Key-Value数据库),现在已经应用在各个场景中。现阶段对于Codis集群进行扩容,是基于其自带的管理工具(如codis-admin),逐一对codis-server(Codis项目维护的一个Redis分支)进行操作。具体的,首先通过人为观察确定出可用的槽位,并且基于该可用的槽位通过页面操作创建出一个扩容组Codis-Redis-Group;然后人为操作相应页面为该Codis-Redis-Group添加一个主Redis实例codis-server-master,以及为该Codis-Redis-Group逐一添加从Redis实例codis-server-slave。重复上述创建以及添加的过程,为当前Codis集群进行扩容。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:面对大规模Codis集群扩容的需求,现有技术只能通过人工进行扩容以及只支持单台操作,所以操作速度慢、效率低;对于不止维护一套Codis集群的现状,如果各个集群都通过手工维护,则会有准确度不高的问题;而且,扩容Codis集群时需要人为规划,存在人工成本高的问题。
发明内容
有鉴于此,本发明实施例提供一种Codis集群扩容的方法和装置,能够动态规划Codis集群所需要创建的组和组中所需添加的主从Redis实例,并且自适应动态创建组,以及为创建的组添加主从Redis实例。
为实现上述目的,根据本发明实施例的一个方面,提供了一种Codis集群扩容的方法。
本发明实施例的Codis集群扩容的方法包括:根据待创建扩容组的数量G和每个待创建扩容组所需的Redis实例的个数S生成Redis实例队列;根据当前集群可用的槽位创建G个扩容组,并且读取所述Redis实例队列,向创建的每个扩容组中添加S个Redis实例。
可选地,所述生成Redis实例队列的步骤包括:根据扩容组的数量G和每个扩容组所需的Redis实例的个数S,获取G*S个Redis实例的标识信息;将获取到的Redis实例的标识信息存于Redis实例队列中。
可选地,在根据当前集群可用的槽位创建G个扩容组,并且读取所述Redis实例队列,向每个扩容组中添加S个Redis实例之前,还包括:获取当前集群中的已有组的ID,根据所述已有组的ID获取对应的所述已有组在当前集群中的槽位;根据所述已有组的槽位以及当前集群支持的组的最大数量,确定出当前集群可用的槽位。
可选地,在确定出当前集群可用的槽位之后,还包括将所述可用的槽位存于槽位队列中;
所述根据当前集群可用的槽位创建G个扩容组,并且读取所述Redis实例队列,向每个扩容组中添加S个Redis实例的步骤包括:读取所述槽位队列中的G个可用槽位,根据所述G个可用槽位创建G个扩容组;读取所述Redis实例队列中的标识信息,向每个扩容组中添加S个Redis实例。
可选地,还包括:在根据当前集群可用的槽位创建G个扩容组之前,确定当前集群可用的槽位的数量大于所述待创建扩容组的数量G。
可选地,所述Redis实例队列包括主Redis实例队列和从Redis实例队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710946406.2/2.html,转载请声明来源钻瓜专利网。