CN109818767B - 一种Redis集群容量调整的方法、装置及存储介质 - Google Patents

一种Redis集群容量调整的方法、装置及存储介质 Download PDF

Info

Publication number
CN109818767B
CN109818767B CN201711166582.0A CN201711166582A CN109818767B CN 109818767 B CN109818767 B CN 109818767B CN 201711166582 A CN201711166582 A CN 201711166582A CN 109818767 B CN109818767 B CN 109818767B
Authority
CN
China
Prior art keywords
redis
group
cluster
determining
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711166582.0A
Other languages
English (en)
Other versions
CN109818767A (zh
Inventor
林斌树
李瑜婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201711166582.0A priority Critical patent/CN109818767B/zh
Publication of CN109818767A publication Critical patent/CN109818767A/zh
Application granted granted Critical
Publication of CN109818767B publication Critical patent/CN109818767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例涉及数据存储技术领域,尤其涉及一种Redis集群容量调整的方法、装置及存储介质。在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组;确定当前阶段的Redis群组的配置信息,当前阶段的Redis群组的路由阈值根据Redis集群的容量调整时刻确定,当前阶段的Redis群组的路由规则根据当前阶段的Redis群组中的Redis服务器确定;将当前阶段的Redis群组的配置信息发送给客户端。客户端可以按照某一路由规则在对应的服务器进行数据的存储,解决了必须通过手动调整已存入的数据的分配的问题。

Description

一种Redis集群容量调整的方法、装置及存储介质
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种Redis集群容量调整的方法、装置及存储介质。
背景技术
随着科技的飞速发展,互联网企业在应对越来越复杂的客户需求同时,也产生了巨大量的数据信息。Redis在大数据平台上有着广泛的应用,可以作为数据统计的计数器或者用来存储数据。Redis占用的是单台物理机或者虚拟机的内存,而内存资源是有限的,因此需要根据业务情况来进行容量调整,这就需要用到Redis集群。
现有技术中,客户端分片是实现Redis集群的一种方案,这种方案中Redis客户端直接与Redis服务端进行交互,Redis客户端通过数据的Key的一致性哈希算法将数据存储在服务端哪一台Redis机器上。但是在扩容或者缩容时,由于Redis服务端配置的改变引起Redis服务端和Redis客户端之间的路由规则的改变,会使得必须通过运维人员手动调整已经存储在Redis服务端各机器上的数据的分配,运维时比较繁琐。
举个例子,在扩容前,服务端有2台(1号和2号)Redis服务器,第一阶段数据按照原定的路由规则由客户端对数据的Key进行一致性哈希计算,将第一阶段数据存储在服务端1号或者2号Redis服务器。扩容后,服务端配置发生了改变,增加了3号和4号服务器,因此,Redis服务端和Redis客户端之间产生的新路由规则取代了之前的路由规则。然而,当客户端想要取出第一阶段的某些数据时,根据新的路由规则对数据的Key进行一致性哈希计算后,会出现指示去3号Redis服务器取出第一阶段数据的情况,然而第一阶段数据都存储在1号和2号Redis服务器。就这使得工作人员在扩容后就必须按照新的路由规则对第一阶段数据进行迁移,手动调整已经存储在Redis服务端各机器上的数据的分配,这给工作人员带来大量的繁琐的工作,浪费时间。
综上所述,丞需一种解决方法解决在Redis服务端容量调整后,由于Redis集群配置的改变,使得必须通过手动调整Redis数据的分配从而导致的运维比较繁琐的问题。
发明内容
本发明实施例提供一种Redis集群容量调整的方法、装置及存储介质,用于解决Redis服务端容量调整后,由于Redis集群配置的改变,使得必须通过手动调整Redis数据的分配从而导致的运维比较繁琐的问题。
本申请实施例提供一种Redis集群容量调整的方法,包括在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组;确定当前阶段的Redis群组的配置信息,其中配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;当前阶段的Redis群组的路由阈值根据Redis集群的容量调整时刻确定,当前阶段的Redis群组的路由规则根据当前阶段的Redis群组中的Redis服务器确定,将当前阶段的Redis群组的配置信息发送给客户端。
可选的,还包括根据业务需求确定Redis集群的时限阈值,时限阈值用于确定Redis集群内各群组中的数据的有效时段;根据当前运行时间、当前阶段的Redis群组的路由阈值,以及时限阈值,确定历史阶段的Redis群组是否失效;其中,历史阶段的Redis群组为Redis集群容量调整前包含的Redis群组;历史阶段的Redis群组中的Redis服务器为历史阶段的Redis群组确定前Redis集群中的Redis服务器;若历史阶段的Redis群组失效,则向客户端发送失效指令;其中,失效指令中包括失效的历史阶段的Redis群组。
可选的,根据当前运行时间、当前阶段的Redis群组的路由阈值,以及时限阈值,确定历史阶段的Redis群组是否失效,包括若当前运行时间大于当前阶段的Redis群组的路由阈值与时限阈值之和,则确定历史阶段的Redis群组失效。
可选的,在Redis集群的容量调整之前,还包括:创建Redis集群;将Redis集群中的Redis服务器确定为第一Redis群组,并确定第一Redis群组的配置信息;将第一Redis群组的配置信息发送至客户端;在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组,包括:确定Redis集群的容量扩充,将Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,第二Redis群组中的Redis服务器的容量大于第一Redis群组中的Redis服务器的容量;确定当前阶段的Redis群组的配置信息,包括确定第二Redis群组的配置信息;将当前阶段的Redis群组的配置信息发送给客户端,包括将第二Redis群组的配置信息发送给客户端;将第二Redis群组的配置信息发送给客户端之后,还包括确定第一Redis群组失效后,向客户端发送失效指令;其中,失效指令用于告知客户端失效的Redis群组。
可选的,在Redis集群的容量调整之前,还包括:创建Redis集群;将Redis集群中的Redis服务器确定为第一Redis群组,并确定第一Redis群组的配置信息;将第一Redis群组的配置信息发送至客户端;
在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组,包括确定Redis集群的容量缩减,将Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,第二Redis群组中的Redis服务器的容量小于第一Redis群组中的Redis服务器的容量;确定当前阶段的Redis群组的配置信息,包括:确定第二Redis群组的配置信息;将当前阶段的Redis群组的配置信息发送给客户端,包括将第二Redis群组的配置信息发送给客户端;将第二Redis群组的配置信息发送给客户端之后,还包括确定第一Redis群组失效后,通向客户端发送失效指令;其中,失效指令用于告知客户端失效的Redis群组。
本申请实施例提供一种Redis集群容量调整的方法,包括确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值;根据第一路由值和Redis集群中各Redis群组的路由阈值,确定存储待写入的Redis数据的第一Redis群组;其中,第一Redis群组为Redis集群中的一个群组,每个Redis群组对应Redis集群的容量调整的不同阶段,每个Redis群组的路由阈值根据Redis集群的容量调整时刻确定的,每个Redis群组的路由规则是根据Redis群组内的Redis服务器确定的;根据待写入的Redis数据的Key和第一Redis群组的路由规则,确定第一Redis群组中存储待写入的Redis数据的第一Redis服务器,并根据确定的第一Redis服务器生成存储指令。将待写入的Redis数据和存储指令发送给第一Redis服务器。
可选的,还包括确定待读取的Redis数据的key的有序变化字段对应的第二路由值;根据第二路由值和Redis集群中各Redis群组的路由阈值,确定存储待读取的Redis数据的第二Redis群组;其中,第二Redis群组为Redis集群中的一个群组;根据待读取的Redis数据的Key和第二Redis群组的路由规则,确定第二Redis群组中存储待读取的Redis数据的第二Redis服务器,并根据确定的第二Redis服务器生成读取指令,将读取指令发送给第二Redis服务器。
本申请实施例提供一种Redis集群容量调整的管理中心,包括群组确定单元,用于在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组;群组配置单元,用于确定当前阶段的Redis群组的配置信息,其中配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;当前阶段的Redis群组的路由阈值根据Redis集群的容量调整时刻确定,当前阶段的Redis群组的路由规则根据当前阶段的Redis群组中的Redis服务器确定;收发单元,用于将当前阶段的Redis群组的配置信息发送给客户端。
可选的,还包括失效判断单元,失效判断单元,用于根据业务需求确定Redis集群的时限阈值,时限阈值用于确定Redis集群内各群组中的数据的有效时段;根据当前运行时间、当前阶段的Redis群组的路由阈值,以及时限阈值,确定历史阶段的Redis群组是否失效;其中,历史阶段的Redis群组为Redis集群容量调整前包含的Redis群组;历史阶段的Redis群组中的Redis服务器为历史阶段的Redis群组确定前Redis集群中的Redis服务器;收发单元,还用于若历史阶段的Redis群组失效,则向客户端发送失效指令;其中,失效指令中包括失效的历史阶段的Redis群组。
可选的,失效判断单元,具体用于若当前运行时间大于当前阶段的Redis群组的路由阈值与时限阈值之和,则确定历史阶段的Redis群组失效。
可选的,还包括处理单元:处理单元,用于创建Redis集群;群组确定单元,还用于在Redis集群的容量调整前将Redis集群中的Redis服务器确定为第一Redis群组;群组配置单元,还用于确定第一Redis群组的配置信息;收发单元,还用于将第一Redis群组的配置信息发送至客户端;群组确定单元,具体用于确定Redis集群的容量扩充,将Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,第二Redis群组中的Redis服务器的容量大于第一Redis群组中的Redis服务器的容量;群组配置单元,具体用于确定第二Redis群组的配置信息;收发单元,具体用于将第二Redis群组的配置信息发送给客户端;收发单元,还用于在失效判断单元确定第一Redis群组失效后,向客户端发送失效指令;其中,失效指令用于告知客户端失效的Redis群组。
可选的,还包括处理单元:处理单元,用于创建Redis集群;群组确定单元,还用于在Redis集群的容量调整前将Redis集群中的Redis服务器确定为第一Redis群组;群组配置单元,还用于确定第一Redis群组的配置信息;收发单元,还用于将第一Redis群组的配置信息发送至客户端;群组确定单元,具体用于确定Redis集群的容量缩减,将Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,第二Redis群组中的Redis服务器的容量小于第一Redis群组中的Redis服务器的容量;群组配置单元,具体用于确定第二Redis群组的配置信息;收发单元,具体用于将第二Redis群组的配置信息发送给客户端;收发单元,还用于在失效判断单元确定第一Redis群组失效后,向客户端发送失效指令;其中,失效指令用于告知客户端失效的Redis群组。
本申请实施例提供一种Redis集群容量调整的客户端,包括路由确定单元,用于确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值;群组查找单元,用于根据第一路由值和Redis集群中各Redis群组的路由阈值,确定存储待写入的Redis数据的第一Redis群组;其中,第一Redis群组为Redis集群中的一个群组,每个Redis群组对应Redis集群的容量调整的不同阶段,每个Redis群组的路由阈值根据Redis集群的容量调整时刻确定的,每个Redis群组的路由规则是根据Redis群组内的Redis服务器确定的;服务器确定单元,用于根据待写入的Redis数据的Key和第一Redis群组的路由规则,确定第一Redis群组中存储待写入的Redis数据的第一Redis服务器,处理单元,用于根据确定的第一Redis服务器生成存储指令;收发单元,用于将待写入的Redis数据和存储指令发送给第一Redis服务器。
可选的,还包括路由确定单元,还用于确定待读取的Redis数据的key的有序变化字段对应的第二路由值;群组查找单元,还用于根据第二路由值和Redis集群中各Redis群组的路由阈值,确定存储待读取的Redis数据的第二Redis群组;其中,第二Redis群组为Redis集群中的一个群组;服务器确定单元,还用于根据待读取的Redis数据的Key和第二Redis群组的路由规则,确定第二Redis群组中存储待读取的Redis数据的第二Redis服务器;处理单元,还用于根据确定的第二Redis服务器生成读取指令;收发单元,还用于将读取指令发送给第二Redis服务器。
本申请实施例提供一种计算机可读存储介质,其特征在于,存储介质存储有指令,当指令在计算机上运行时,使得计算机实现执行Redis集群容量调整方法。
本申请实施例提供一种计算机设备,其特征在于,包括:存储器,用于存储程序指令;处理器,用于调用存储器中存储的程序指令,按照获得的程序执行Redis集群容量调整方法。
本申请实施例中,在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组;确定当前阶段的Redis群组的配置信息,其中配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;当前阶段的Redis群组的路由阈值根据Redis集群的容量调整时刻确定,当前阶段的Redis群组的路由规则根据当前阶段的Redis群组中的Redis服务器确定;将当前阶段的Redis群组的配置信息发送给客户端。如此,可以平滑的调整容量,从而使得客户端可以按照某一路由规则在对应的Redis服务器进行数据的存储,解决了必须通过手动调整已存入的Redis数据的分配的问题,降低运维的繁琐程度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种适用的系统架构图;
图2为本申请实施例提供的一种Redis集群容量调整的方法的流程示意图;
图3为本申请实施例提供的一种Redis集群容量调整的方法的流程示意图;
图4为本申请实施例提供的一种Redis集群容量调整的服务端的结构示意图;
图5为本申请实施例提供的一种Redis集群容量调整的客户端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示例性示出了本申请实施例适用的一种系统架构图,如图1所示,包括服务端101、管理中心102和客户端103。管理中心102可以根据业务量的需求对Redis集群进行容量调整,管理中心102可以将服务端101中当前阶段的Redis群组的配置信息发送给客户端103。
图2示出了本发明实施例提供的一种集群容量调整的方法的流程示意图,如图2所示,该方法可以包括:
步骤201,管理中心在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组;
步骤202,管理中心确定当前阶段的Redis群组的配置信息,其中,配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;当前阶段的Redis群组的路由阈值根据Redis集群的容量调整时刻确定,当前阶段的Redis群组的路由规则根据当前阶段的Redis群组中的Redis服务器确定;
步骤203,管理中心将当前阶段的Redis群组的配置信息发送给客户端。
本申请实施例中,管理中心在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组;所述管理中心确定所述当前阶段的Redis群组的配置信息,其中所述配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;所述当前阶段的Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定,所述当前阶段的Redis群组的路由规则根据所述当前阶段的Redis群组中的Redis服务器确定;所述管理中心将所述当前阶段的Redis群组的配置信息发送给客户端。如此,管理中心可以平滑的调整容量,从而使得客户端可以按照某一路由规则在对应的Redis服务器进行数据的存储,解决了必须通过手动调整已存入的Redis数据的分配的问题,降低运维的繁琐程度。
本申请实施例中,管理中心可以设置在服务端,也可以独立于客户端和服务端存在。
上述步骤201前,一种可选的实施方式中,Redis集群的容量调整可以根据待写入的Redis数据量确定,可选的,Redis集群可以根据客户端发送的待写入的Redis数据所需容量的评估信息变化容量,比如,客户端在获取待写入的Redis数据后,可以进行待写入的Redis数据所需容量的评估,把该评估发送给管理中心,管理中心根据该评估和Redis集群的容量决定该集群是扩充容量还是缩间容量,Redis集群还可以根据工作人员的操作变化容量,比如,在客户端获取待写入的Redis数据前,工作人员得知待写入的Redis数据所需容量值,并决定该Redis集群是扩充容量还是缩减容量。
上述步骤202中,当前阶段的Redis群组的路由规则根据当前阶段的Redis群组中的Redis服务器确定。一种可选的实施方式中,当前阶段的Redis群组中的Redis服务器可以根据预设算法进行排序,根据经过排序后的当前阶段的Redis群组中的Redis服务器确定当前阶段的Redis群组的路由规则。
上述步骤203中,管理中心将当前阶段的Redis群组的配置信息发送给客户端。一种可选的实施方式中,管理中心在确定当前阶段的Redis群组的配置信息之前已经确定了服务端中的服务器的情况,服务请的情况可以包括服务器的数量和每台服务器的容量。
一种可选的实施方式中,客户端可以在管理中心确定当前阶段的Redis群组的配置信息后直接从管理中心接收当前阶段的Redis群组的配置信息。另一种可选的实施方式中,管理中心确定当前阶段的Redis群组的配置信息后,可以向客户端发送告知指示,告知指示中包括当前阶段的Redis群组的标识。客户端接收管理中心的告知指示后向管理中心发送配置信息请求,配置信息请求包括当前阶段的Redis群组的标识。管理中心接收客户端发送的配置信息请求后,将当前阶段的Redis群组的配置信息发送给客户端。
一种可选的实施方式中,客户端接收到当前阶段的Redis群组的配置信息后,可以将当前阶段的Redis群组的配置信息存储至客户端的存储区域。
一种可选的实施方式中,管理中心可以包括分布式应用协调程序Zookeeper和配置中心。配置中心在Redis集群的容量调整时,可以根据预设规则将Redis集群中的Redis服务器确定为当前阶段的Redis群组。配置中心可以确定当前阶段的Redis群组的配置信息,其中,配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则。Zookeeper监控到配置中心确定当前阶段的Redis群组的配置信息后,可以把该配置信息发送给客户端。
由于存储在Redis集群中的Redis数据并不需要永久保留,通常只需要在一个特定的时间段内有效。一种可选的实施方式中,所述管理中心根据业务需求确定所述Redis集群的时限阈值,所述时限阈值用于确定所述Redis集群内各群组中的数据的有效时段。所述管理中心根据当前运行时间、所述当前阶段的Redis群组的路由阈值,以及所述时限阈值,确定历史阶段的Redis群组是否失效;其中,所述历史阶段的Redis群组为所述Redis集群容量调整前包含的Redis群组;所述历史阶段的Redis群组中的Redis服务器为所述历史阶段的Redis群组确定前所述Redis集群中的Redis服务器;若所述历史阶段的Redis群组失效,则管理中心通过所述管理中心向所述客户端发送失效指令;其中,所述失效指令中包括失效的所述历史阶段的Redis群组。可选的,当前运行时间可以统一为北京时间。
一种可选的实施方式中,所述管理中心根据当前运行时间、所述当前阶段的Redis群组的路由阈值,以及所述时限阈值,确定所述历史阶段的Redis群组是否失效,包括:若所述当前运行时间大于所述当前阶段的Redis群组的路由阈值与所述时限阈值之和,则所述管理中心确定所述历史阶段的Redis群组失效。
一种可选的实施方式中,管理中心可以接收时限阈值命令,时限阈值命令中包括当前阶段的Redis集群的时限阈值。
举个例子,Redis集群的时限阈值为4个小时,4个小时就是Redis集群中各群组中的数据的有效时段,当前阶段的Redis群组的路由阈值为2017-8-1312:00,若当前系统的运行时间为2017-8-13 16:01,符合当前运行时间大于所述当前阶段的Redis群组的路由阈值与所述时限阈值之和的条件,管理中心则确定历史阶段的Redis群组失效。
一种可选的实施方式中,客户端可以将失效的Redis群组的配置信息从客户端的存储区域中删除。
上述步骤201前,一种可选的实施方式中,所述管理中心创建所述Redis集群,所述管理中心将所述Redis集群中的Redis服务器确定为第一Redis群组,并确定所述第一Redis群组的配置信息。所述管理中心将所述第一Redis群组的配置信息发送至客户端。
可选的,第一Redis群组的路由阈值可以根据第一Redis群组中的Redis服务器确定。第一Redis群组的配置信息可以包括第一Redis群组中的Redis服务器列表、第一Redis群组的路由规则。
一种可选的实施方式中,所述管理中心确定所述Redis集群的容量扩充,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量大于所述第一Redis群组中的Redis服务器的容量;所述管理中心确定所述第二Redis群组的配置信息;所述管理中心将所述第二Redis群组的配置信息发送给所述客户端;所述管理中心确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
一种可选的实施方式中,Redis集群中的每个Redis服务器的容量可以是相同的,在Redis集群容量扩充时,第二Redis群组中的Redis服务器的个数大于第一Redis群组中的Redis服务器的个数。
举个例子,在Redis集群的容量调整之前,可以有一台或者多台服务器,假如有两台Redis服务器,编号为1号和2号。第一Redis群组中的服务器为服务器1号和2号。当确定Redis集群容量扩充时,增加Redis集群中服务器的数量,一种可选的实施方式中,预设规则可以是增加编号为3号和4号的服务器,第二Redis群组中的服务器为服务器1号、2号、3号和4号。另一种可选的实施方式中,预设规则可以是增加编号为3号、4号、5号和6号的服务器,第二Redis群组中的服务器为服务器3号、4号、5号和6号。如此,可以提高方案的灵活性。
另一种可选的实施方式中,所述管理中心确定所述Redis集群的容量缩减,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量小于所述第一Redis群组中的Redis服务器的容量;所述管理中心确定所述第二Redis群组的配置信息;所述管理中心将所述第二Redis群组的配置信息发送给所述客户端;所述管理中心确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
一种可选的实施方式中,Redis集群中的每个Redis服务器的容量可以是相同的,在Redis集群容量缩减时,第二Redis群组中的Redis服务器的个数小于第一Redis群组中的Redis服务器的个数。
举个例子,在Redis集群的容量调整之前,可以有一台或者多台服务器,假如有四台Redis服务器,编号为1号、2号、3号和4号。第一Redis群组中的服务器为服务器1号、2号、3号和4号。当确定Redis集群容量缩减时,一种可选的实施方式中,预设规则可以是将3号和4号的服务器确定为第二Redis群组中的服务器。另一种可选的实施方式中,预设规则可以是增加编号为7号和8号的服务器,将7号和8号的服务器确定为第二Redis群组中的服务器,如此,可以提高方案的灵活性。
上述步骤203后,一种可选的实施方式中,客户端确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值;所述客户端根据所述第一路由值和Redis集群中各Redis群组的路由阈值,确定存储所述待写入的Redis数据的第一Redis群组;其中,所述第一Redis群组为所述Redis集群中的一个群组,每个Redis群组对应所述Redis集群的容量调整的不同阶段,每个Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定的,每个Redis群组的路由规则是根据所述Redis群组内的Redis服务器确定的。所述客户端根据所述待写入的Redis数据的Key和所述第一Redis群组的路由规则,确定所述第一Redis群组中存储所述待写入的Redis数据的第一Redis服务器,并根据确定的所述第一Redis服务器生成存储指令。所述客户端将所述待写入的Redis数据和所述存储指令发送给所述第一Redis服务器。
可选的,在客户端确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值前,客户端可以获取待写入的Redis数据,Redis是键值对(Key-value)的数据库,因此,Redis数据也可以被称为键值对。
一种可选的实施方式中,客户端在获取待写入的Redis数据后,确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值,每个Redis数据的键Key都不同,键Key包括多种和业务相关的字段,选择其中的有序变化字段,确定有序变化字段对应的第一路由值,这里可以是生成Redis数据的时间。比如,Redis数据可以是业务数据,业务数据的键Key的有序变化字段对应的第一路由值可以是生成该业务数据的时间。
举个例子,若待写入的Redis数据的第一路由值大于第二Redis群组的路由阈值,客户端可以确定将待写入的Redis数据存储到第二Redis群组中的Redis服务器上。随后,客户端可以对待写入的Redis数据的Key进行一致性哈希算法得到某个值,该值根据第二Redis群组的路由规则对应到第二Redis群组中的第一Redis服务器上,根据确定的第一Redis服务器生成存储指令。客户端可以将该待写入的Redis数据和存储指令发送给第一Redis服务器。第一Redis服务器可以将待写入的Redis数据存储至存储区域。
客户端客户端如何获取待读取的Redis数据,一种可选的实施方式中,客户端确定所述待读取的Redis数据的key的有序变化字段对应的第二路由值;根据所述第二路由值和所述Redis集群中各Redis群组的路由阈值,确定存储所述待读取的Redis数据的第二Redis群组;其中,所述第二Redis群组为所述Redis集群中的一个群组。所述客户端根据所述待读取的Redis数据的Key和所述第二Redis群组的路由规则,确定所述第二Redis群组中存储所述待读取的Redis数据的第二Redis服务器,并根据确定的所述第二Redis服务器生成读取指令。所述客户端将所述读取指令发送给所述第二Redis服务器。
举个例子,若待读取的Redis数据的第二路由值小于第二Redis群组的路由阈值,客户端确定待读取的Redis数据存储在第一Redis群组。客户端可以对待读取的Redis数据的Key进行一致性哈希算法得到某个值,该值根据第一Redis群组的路由规则对应到第二Redis服务器。客户端可以根据确定的第二Redis服务器生成读取指令,将读取指令发送给第二Redis服务器。第二Redis服务器接收到读取指令后可读取待读取的Redis数据。第二Redis服务器可以将读取的Redis数据发送给客户端。
图3示出了本发明实施例中提供一种Redis集群容量调整的方法的流程示意图,如图3所示,包括:
步骤301,管理中心创建Redis集群;
步骤302,管理中心将Redis集群中的Redis服务器确定为第一Redis群组,并确定第一Redis群端的配置信息;其中,第一Redis群组的配置信息包括第一Redis群组中的Redis服务器列表和第一Redis群组的路由规则;
步骤303,管理中心将第一Redis群组的配置信息发送给客户端;
步骤304,客户端存储第一Redis群组的配置信息至存储区域;
步骤305,管理中心在Redis集群的容量调整时,根据预设规则将Redis集群中的Redis服务器确定为第二Redis群组;
步骤306,管理中心确定所述第二群组的配置信息,其中所述配置信息包括第二Redis群组中的Redis服务器列表、第二Redis群组的路由阈值及第二Redis群组的路由规则;所述第二Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定,所述第二Redis群组的路由规则根据所述第二Redis群组中的Redis服务器确定;
步骤307,所述管理中心将第二Redis群组的配置信息发送给客户端;
步骤308,客户端存储第二Redis群组的配置信息至存储区域;
步骤309,客户端确定写入的Redis数据中的键Key的有序变化字段对应的第一路由值;
步骤310,客户端根据所述第一路由值和Redis集群中各Redis群组的路由阈值,确定存储所述待写入的Redis数据的Redis群组;
步骤311,客户端根据所述待写入的Redis数据的Key和存储待写入的Redis数据的Redis群组的路由规则,确定该Redis群组中存储所述待写入的Redis数据的Redis服务器;
步骤312,客户端将待写入的Redis数据和生成的存储指令发送给该Redis服务器;
步骤313;服务端的Redis服务器存储该待写入的Redis数据;
步骤314,管理中心判断当前运行时间是否大于第二Redis群组的路由阈值和Redis集群的时限阈值之和;
步骤315,在当前运行时间大于第二Redis群组的路由阈值和Redis集群的时限阈值之和的情况下,管理中心向客户端发送失效指令;失效指令中包含失效的第一Redis群组;
步骤316,客户端接收到失效指令后,将第一Redis群组的配置信息从存储区域中删除。
步骤301至步骤304为Redis集群容量调整前的Redis群组的创建过程,步骤305至步骤308为Redis集群容量调整后的第二群组的创建过程,步骤309至步骤313未客户端储存数据的过程。步骤314至步骤316为判断第一Redis群组失效并删除第一Redis群组的配置信息的过程。
下面分别举例Redis集群容量扩充和容量缩减时存储和读取Redis数据的两种情况。
示例一:Redis集群容量扩充时存储和读取Redis数据:
假设原来服务端Redis集群中总的数据总的数据量为600G,现在由于业务量的扩大,总的数据量增加到1T,这就使得Redis集群需要扩充容量。在扩充容量前,已存在第一Redis群组,该第一Redis群组中的Redis服务器包括:Redis001,Redis002,Redis003并对3台服务器进行排序,第一Redis群组可以是服务端Redis集群中历史存在的群组,所以群组的路由阈值比较小,比如路由阈值为2010-01-01 0:00,并根据第一Redis群组中的Redis服务器确定第一Redis群组的路由规则,管理中心把第一Redis群组的配置信息发送给客户端,客户端对第一Redis群组的配置信息进行存储。
当确定容量由600G增加到1T时,确定生成第二Redis群组,该群组中的Redis服务器包括Redis001,Redis002,Redis003,Redis004,Redis005,Redis006,并对6台服务器进行排序,假设是在2017-09-01 12:00确定第二Redis群组并生效,则2017-09-01 12:00为第二Redis群组的路由阈值,并根据第二Redis群组中的Redis服务器确定第二Redis群组的路由规则,该Redis集群的时限阈值为10小时。管理中心把第二Redis群组的配置信息发送给客户端,客户端对第二Redis群组的配置信息进行保存。
接着,客户端确定待写入的第一Redis数据中的键Key的有序变化字段对应的第一路由值,比如2017-09-01 16:00,2017-09-01 16:00比第二Redis群组的路由阈值大,确定该第一Redis数据应该存储到第二Redis群组,然后可以对待写入的第一Redis数据的Key进行一致性哈希算法得到某个值,该值根据第二Redis群组的路由规则对应到其中的一台服务器上,比如服务器Redis006,根据确定的服务器Redis006生成存储指令,最后,客户端将该待写入的第一Redis数据和存储指令发送给服务器Redis006,服务器Redis006根据存储指令将该待写入的第一Redis数据进行存储
客户端要读取第二Redis数据时,客户端确定待读取的第二Redis数据的key的有序变化字段对应的第二路由值,比如2017-09-01 8:00,2017-09-01 8:00比第二Redis群组的路由阈值小,确定该第二Redis数据应该从第一Redis群组中的Redis服务器中读取,可以对待读取的第二Redis数据的Key进行一致性哈希算法得到某个值,该值根据第一Redis群组的路由规则对应到其中的一台服务器上,比如服务器Redis003,根据确定的服务器Redis003生成读取指令,客户端将读取指令发送给服务器Redis003,服务器Redis003根据读取指示读取第二Redis数据后,将读取的第二Redis数据发送给客户端。
若运行到2017-09-01 22:00时,则确定第一Redis群组失效,管理中心向客户端发送失效指令,失效指令中包括失效的第一Redis群组,客户端收到管理中心发送的失效指令后,将失效的第一Redis群组的配置信息从存储区域中删除。此时,Redis集群中的第二Redis群组是有效的。
示例二:Redis集群容量缩减时存储和读取Redis数据:
现在由于业务量的减少,总的数据量由1T缩小到400G,这就使得Redis集群需要缩小容量。在缩小容量前,已存在第二Redis群组,该群组中的Redis服务器包括Redis001,Redis002,Redis003,Redis004,Redis005,Redis006,并对6台服务器进行排序,确定第二Redis群组的路由规则,该Redis集群的时限阈值为10小时。客户端中保存有第二Redis群组的配置信息。
当确定容量由1T缩小到400G,确定生成第三Redis群组,该群组中的Redis服务器包括Redis007,Redis008,并对2台服务器进行排序,假设是在2017-09-020:00确定第三Redis群组并生效,则2017-09-02 0:00就是第三Redis群组的路由阈值,并根据第三Redis群组中的Redis服务器确定第三Redis群组的路由规则。管理中心把第三Redis群组的配置信息发送给客户端,客户端对第三Redis群组的配置信息进行保存。
接着,客户端确定待写入的第三Redis数据中的键Key的有序变化字段对应的第三路由值,比如2017-09-02 1:00,2017-09-01 1:00比第三Redis群组的路由阈值大,确定该第三Redis数据应该存储到第三Redis群组,然后可以对待写入的第三Redis数据的Key进行一致性哈希算法得到某个值,该值根据第三Redis群组的路由规则对应到其中的一台服务器上,比如服务器Redis007,根据确定的服务器Redis007生成存储指令,最后,客户端将该待写入的第三Redis数据和存储指令发送给服务器Redis007,服务器Redis007根据存储指令将该待写入的第三Redis数据存储至存储区域。
客户端要读取第四Redis数据时,客户端确定待读取的第四Redis数据的key的有序变化字段对应的第四路由值,比如2017-09-01 18:00,2017-09-01 18:00比第三Redis群组的路由阈值小,确定该第四Redis数据应该从第二Redis群组中的服务器上读取,然后可以对待读取的第四Redis数据的Key进行一致性哈希算法得到某个值,该值根据第二Redis群组的路由规则对应到其中的一台服务器上,比如服务器Redis005,根据确定的服务器Redis005生成读取指令,客户端将读取指令发送给服务器Redis005,服务器Redis005根据读取指示读取第四Redis数据后,将读取的第四Redis数据发送给客户端。
若运行到2017-09-02 10:00时,则确定第二Redis群组失效,管理中心向客户端发送失效指令,失效指令中包括失效的第二Redis群组,客户端收到管理中心发送的失效指令后,将失效的第二Redis群组的配置信息从存储区域中删除。此时,Redis集群中第三Redis群组是有效的。
基于以上实施例及相同构思,图4示出了本发明实施例提供的一种Redis集群调整的管理中心的结构示意图,如图4所示,该管理中心400可以包括群组确定单元401、群组配置单元402和收发单元403。
本申请实施例提供一种Redis集群容量调整的服务端,包括:群组确定单元,用于在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组。群组配置单元,用于确定所述当前阶段的Redis群组的配置信息,其中所述配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;所述当前阶段的Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定,所述当前阶段的Redis群组的路由规则根据所述当前阶段的Redis群组中的Redis服务器确定。收发单元,用于将所述当前阶段的Redis群组的配置信息发送给客户端。
本申请实施例中,在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组;所述确定所述当前阶段的Redis群组的配置信息,其中所述配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;所述当前阶段的Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定,所述当前阶段的Redis群组的路由规则根据所述当前阶段的Redis群组中的Redis服务器确定;所述将所述当前阶段的Redis群组的配置信息发送给客户端。如此,可以平滑的调整容量,从而使得客户端可以按照某一路由规则在对应的Redis服务器进行数据的存储,解决了必须通过手动调整已存入的Redis数据的分配的问题,降低运维的繁琐程度。
一种可选的实施方式中,所述失效判断单元,用于根据业务需求确定所述Redis集群的时限阈值,所述时限阈值用于确定所述Redis集群内各群组中的数据的有效时段;还用于根据当前运行时间、所述当前阶段的Redis群组的路由阈值,以及所述时限阈值,确定历史阶段的Redis群组是否失效;其中,所述历史阶段的Redis群组为所述Redis集群容量调整前包含的Redis群组;所述历史阶段的Redis群组中的Redis服务器为所述历史阶段的Redis群组确定前所述Redis集群中的Redis服务器。所述收发单元,还用于若所述历史阶段的Redis群组失效,则向所述客户端发送失效指令;其中,所述失效指令中包括失效的所述历史阶段的Redis群组。
一种可选的实施方式中,所述失效判断单元,具体用于若所述当前运行时间大于所述当前阶段的Redis群组的路由阈值与所述时限阈值之和,则确定所述历史阶段的Redis群组失效。
一种可选的实施方式中,还包括处理单元,所述处理单元,用于创建所述Redis集群;所述群组确定单元,还用于在Redis集群的容量调整前将所述Redis集群中的Redis服务器确定为第一Redis群组;所述群组配置单元,还用于确定所述第一Redis群组的配置信息;所述收发单元,还用于将所述第一Redis群组的配置信息发送至客户端。所述群组确定单元,具体用于确定所述Redis集群的容量扩充,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量大于所述第一Redis群组中的Redis服务器的容量;所述群组配置单元,具体用于确定所述第二Redis群组的配置信息;所述收发单元,具体用于将所述第二Redis群组的配置信息发送给所述客户端;所述收发单元,还用于在所述失效判断单元确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
一种可选的实施方式中,还包括处理单元:所述处理单元,用于创建所述Redis集群;所述群组确定单元,还用于在Redis集群的容量调整前将所述Redis集群中的Redis服务器确定为第一Redis群组;所述群组配置单元,还用于确定所述第一Redis群组的配置信息;所述收发单元,还用于将所述第一Redis群组的配置信息发送至所述客户端;所述群组确定单元,具体用于确定所述Redis集群的容量缩减,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量小于所述第一Redis群组中的Redis服务器的容量;所述群组配置单元,具体用于确定所述第二Redis群组的配置信息;所述收发单元,具体用于将所述第二Redis群组的配置信息发送给所述客户端;所述收发单元,还用于在所述失效判断单元确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
由于本申请提供的Redis集群容量调整的管理中心具体阐述可参考上述实施例提供的Redis集群容量调整的方法,在这里不再赘述。
基于以上实施例以及相同构思,图5示出了本发明实施例提供的一种Redis集群容量调整的客户端的结构示意图,如图5所示,该客户端500可以包括路由确认单元501,路由查找单元502、服务器确定单元503、处理单元504和收发单元505。
本申请实施例提供一种Redis集群容量调整的客户端,包括:路由确定单元,用于确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值。群组查找单元,用于根据所述第一路由值和Redis集群中各Redis群组的路由阈值,确定存储所述待写入的Redis数据的第一Redis群组;其中,所述第一Redis群组为所述Redis集群中的一个群组,每个Redis群组对应所述Redis集群的容量调整的不同阶段,每个Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定的,每个Redis群组的路由规则是根据所述Redis群组内的Redis服务器确定的。服务器确定单元,用于根据所述待写入的Redis数据的Key和所述第一Redis群组的路由规则,确定所述第一Redis群组中存储所述待写入的Redis数据的第一Redis服务器,处理单元,用于根据确定的所述第一Redis服务器生成存储指令;收发单元,用于将所述待写入的Redis数据和所述存储指令发送给所述第一Redis服务器。
一种可选的实施方式中,还包括所述路由确定单元,还用于确定所述待读取的Redis数据的key的有序变化字段对应的第二路由值;所述群组查找单元,还用于根据所述第二路由值和所述Redis集群中各Redis群组的路由阈值,确定存储所述待读取的Redis数据的第二Redis群组;其中,所述第二Redis群组为所述Redis集群中的一个群组;所述服务器确定单元,还用于根据所述待读取的Redis数据的Key和所述第二Redis群组的路由规则,确定所述第二Redis群组中存储所述待读取的Redis数据的第二Redis服务器,所述处理单元,还用于根据确定的所述第二Redis服务器生成读取指令;所述收发单元,还用于将所述读取指令发送给所述第二Redis服务器。
由于本申请提供的Redis集群容量调整的客户端具体阐述可参考上述实施例提供的Redis集群容量调整的方法,在这里不再赘述。
基于以上实施例以及相同构思,本发明实施例提供一种计算机可读存储介质,其特征在于,存储介质存储有指令,当指令在计算机上运行时,使得计算机实现执行上述Redis集群容量调整的方法。
由于本发明提供的计算机可读存储介质基于与方法同样的发明构思,因此,可以参照方法实施例的描述,在这里不再赘述。
基于以上实施例以及相同构思,本发明的实施例提供了一种计算机设备,其特征在于,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述Redis集群容量调整的方法。
由于本发明提供的计算机设备基于与方法同样的发明构思,因此,可以参照方法实施例的描述,在这里不再赘述。
还应理解,本文中涉及的第一、第二、第三以及各种数字编号仅为描述方便进行的区分,并不用来限制本发明实施例的范围。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种Redis集群容量调整的方法,其特征在于,包括:
在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组;
确定所述当前阶段的Redis群组的配置信息,其中所述配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;所述当前阶段的Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定,所述当前阶段的Redis群组的路由规则根据所述当前阶段的Redis群组中的Redis服务器确定;
将所述当前阶段的Redis群组的配置信息发送给客户端。
2.如权利要求1所述的方法,其特征在于,还包括:
根据业务需求确定所述Redis集群的时限阈值,所述时限阈值用于确定所述Redis集群内各群组中的数据的有效时段;
根据当前运行时间、所述当前阶段的Redis群组的路由阈值,以及所述时限阈值,确定历史阶段的Redis群组是否失效;其中,所述历史阶段的Redis群组为所述Redis集群容量调整前包含的Redis群组;所述历史阶段的Redis群组中的Redis服务器为所述历史阶段的Redis群组确定前所述Redis集群中的Redis服务器;
若所述历史阶段的Redis群组失效,则向所述客户端发送失效指令;其中,所述失效指令中包括失效的所述历史阶段的Redis群组。
3.权利要求2所述的方法,其特征在于,所述根据当前运行时间、所述当前阶段的Redis群组的路由阈值,以及所述时限阈值,确定所述历史阶段的Redis群组是否失效,包括:
若所述当前运行时间大于所述当前阶段的Redis群组的路由阈值与所述时限阈值之和,则确定所述历史阶段的Redis群组失效。
4.权利要求1-3所述的方法,其特征在于,在Redis集群的容量调整之前,还包括:
创建所述Redis集群;
将所述Redis集群中的Redis服务器确定为第一Redis群组,并确定所述第一Redis群组的配置信息;
将所述第一Redis群组的配置信息发送至所述客户端;
在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组,包括:
确定所述Redis集群的容量扩充,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量大于所述第一Redis群组中的Redis服务器的容量;
确定所述当前阶段的Redis群组的配置信息,包括:
确定所述第二Redis群组的配置信息;
将所述当前阶段的Redis群组的配置信息发送给客户端,包括:
将所述第二Redis群组的配置信息发送给所述客户端;
将所述第二Redis群组的配置信息发送给所述客户端之后,还包括:
确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
5.权利要求1-3所述的方法,其特征在于,在Redis集群的容量调整之前,还包括:
创建所述Redis集群;
将所述Redis集群中的Redis服务器确定为第一Redis群组,并确定所述第一Redis群组的配置信息;
将所述第一Redis群组的配置信息发送至所述客户端;
在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组,包括:
确定所述Redis集群的容量缩减,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量小于所述第一Redis群组中的Redis服务器的容量;
确定所述当前阶段的Redis群组的配置信息,包括:
确定所述第二Redis群组的配置信息;
将所述当前阶段的Redis群组的配置信息发送给客户端,包括:
将所述第二Redis群组的配置信息发送给所述客户端;
将所述第二Redis群组的配置信息发送给所述客户端之后,还包括:
确定所述第一Redis群组失效后,通向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
6.一种Redis集群容量调整的方法,其特征在于,包括:
确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值;
根据所述第一路由值和Redis集群中各Redis群组的路由阈值,确定存储所述待写入的Redis数据的第一Redis群组;其中,所述第一Redis群组为所述Redis集群中的一个群组,每个Redis群组对应所述Redis集群的容量调整的不同阶段,每个Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定的,每个Redis群组的路由规则是根据所述Redis群组内的Redis服务器确定的;
根据所述待写入的Redis数据的Key和所述第一Redis群组的路由规则,确定所述第一Redis群组中存储所述待写入的Redis数据的第一Redis服务器,并根据确定的所述第一Redis服务器生成存储指令;
将所述待写入的Redis数据和所述存储指令发送给所述第一Redis服务器。
7.如权利要求6所述的方法,其特征在于,还包括:
确定待读取的Redis数据的key的有序变化字段对应的第二路由值;根据所述第二路由值和所述Redis集群中各Redis群组的路由阈值,确定存储所述待读取的Redis数据的第二Redis群组;其中,所述第二Redis群组为所述Redis集群中的一个群组;
根据所述待读取的Redis数据的Key和所述第二Redis群组的路由规则,确定所述第二Redis群组中存储所述待读取的Redis数据的第二Redis服务器,并根据确定的所述第二Redis服务器生成读取指令;
将所述读取指令发送给所述第二Redis服务器。
8.一种Redis集群容量调整的管理中心,其特征在于,包括:
群组确定单元,用于在Redis集群的容量调整时,根据预设规则将所述Redis集群中的Redis服务器确定为当前阶段的Redis群组;
群组配置单元,用于确定所述当前阶段的Redis群组的配置信息,其中所述配置信息包括Redis群组中的Redis服务器列表、Redis群组的路由阈值及Redis群组的路由规则;所述当前阶段的Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定,所述当前阶段的Redis群组的路由规则根据所述当前阶段的Redis群组中的Redis服务器确定;
收发单元,用于将所述当前阶段的Redis群组的配置信息通发送给客户端。
9.如权利要求8所述的管理中心,其特征在于,还包括失效判断单元:
所述失效判断单元,用于根据业务需求确定所述Redis集群的时限阈值,所述时限阈值用于确定所述Redis集群内各群组中的数据的有效时段;根据当前运行时间、所述当前阶段的Redis群组的路由阈值,以及所述时限阈值,确定历史阶段的Redis群组是否失效;其中,所述历史阶段的Redis群组为所述Redis集群容量调整前包含的Redis群组;所述历史阶段的Redis群组中的Redis服务器为所述历史阶段的Redis群组确定前所述Redis集群中的Redis服务器;
所述收发单元,还用于若所述历史阶段的Redis群组失效,则向所述客户端发送失效指令;其中,所述失效指令中包括失效的所述历史阶段的Redis群组。
10.权利要求9所述的管理中心,其特征在于,所述失效判断单元,具体用于:
若所述当前运行时间大于所述当前阶段的Redis群组的路由阈值与所述时限阈值之和,则确定所述历史阶段的Redis群组失效。
11.权利要求8-10所述的管理中心,其特征在于,还包括处理单元:
所述处理单元,用于创建所述Redis集群;
所述群组确定单元,还用于在Redis集群的容量调整前将所述Redis集群中的Redis服务器确定为第一Redis群组;
所述群组配置单元,还用于确定所述第一Redis群组的配置信息;
所述收发单元,还用于将所述第一Redis群组的配置信息发送至所述客户端;
所述群组确定单元,具体用于确定所述Redis集群的容量扩充,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量大于所述第一Redis群组中的Redis服务器的容量;
所述群组配置单元,具体用于确定所述第二Redis群组的配置信息;
所述收发单元,具体用于将所述第二Redis群组的配置信息发送给所述客户端;
所述收发单元,还用于在失效判断单元确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
12.权利要求8-10所述的管理中心,其特征在于,还包括处理单元:
所述处理单元,用于创建所述Redis集群;
所述群组确定单元,还用于在Redis集群的容量调整前将所述Redis集群中的Redis服务器确定为第一Redis群组;
所述群组配置单元,还用于确定所述第一Redis群组的配置信息;
所述收发单元,还用于将所述第一Redis群组的配置信息发送至所述客户端;
所述群组确定单元,具体用于:
确定所述Redis集群的容量缩减,将所述Redis集群中当前阶段的Redis服务器确定为第二Redis群组;其中,所述第二Redis群组中的Redis服务器的容量小于所述第一Redis群组中的Redis服务器的容量;
所述群组配置单元,具体用于确定所述第二Redis群组的配置信息;
所述收发单元,具体用于:
将所述第二Redis群组的配置信息发送给所述客户端;
所述收发单元,还用于在失效判断单元确定所述第一Redis群组失效后,向所述客户端发送失效指令;其中,所述失效指令用于告知所述客户端失效的Redis群组。
13.一种Redis集群容量调整的客户端,其特征在于,包括:
路由确定单元,用于确定待写入的Redis数据中的键Key的有序变化字段对应的第一路由值;
群组查找单元,用于根据所述第一路由值和Redis集群中各Redis群组的路由阈值,确定存储所述待写入的Redis数据的第一Redis群组;其中,所述第一Redis群组为所述Redis集群中的一个群组,每个Redis群组对应所述Redis集群的容量调整的不同阶段,每个Redis群组的路由阈值根据所述Redis集群的容量调整时刻确定的,每个Redis群组的路由规则是根据所述Redis群组内的Redis服务器确定的;
服务器确定单元,用于根据所述待写入的Redis数据的Key和所述第一Redis群组的路由规则,确定所述第一Redis群组中存储所述待写入的Redis数据的第一Redis服务器,
处理单元,用于根据确定的所述第一Redis服务器生成存储指令;
收发单元,用于将所述待写入的Redis数据和所述存储指令发送给所述第一Redis服务器。
14.如权利要求13所述的服务端,其特征在于,还包括:
所述路由确定单元,还用于确定待读取的Redis数据的key的有序变化字段对应的第二路由值;
所述群组查找单元,还用于根据所述第二路由值和所述Redis集群中各 Redis群组的路由阈值,确定存储所述待读取的Redis数据的第二Redis群组;其中,所述第二Redis群组为所述Redis集群中的一个群组;
所述服务器确定单元,还用于根据所述待读取的Redis数据的Key和所述第二Redis群组的路由规则,确定所述第二Redis群组中存储所述待读取的Redis数据的第二Redis服务器;
所述处理单元,还用于根据确定的所述第二Redis服务器生成读取指令;
所述收发单元,还用于将所述读取指令发送给所述第二Redis服务器。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机实现执行权利要求1至5中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机实现执行权利要求6至7中任一项所述的方法。
17.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1至5任一权利要求所述的方法。
18.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求6至7任一权利要求所述的方法。
CN201711166582.0A 2017-11-21 2017-11-21 一种Redis集群容量调整的方法、装置及存储介质 Active CN109818767B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711166582.0A CN109818767B (zh) 2017-11-21 2017-11-21 一种Redis集群容量调整的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711166582.0A CN109818767B (zh) 2017-11-21 2017-11-21 一种Redis集群容量调整的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109818767A CN109818767A (zh) 2019-05-28
CN109818767B true CN109818767B (zh) 2021-08-03

Family

ID=66600402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711166582.0A Active CN109818767B (zh) 2017-11-21 2017-11-21 一种Redis集群容量调整的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN109818767B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468310B (zh) * 2019-09-06 2023-04-07 杭州海康威视系统技术有限公司 流媒体集群节点管理方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291296A (zh) * 2011-08-04 2011-12-21 中兴通讯股份有限公司 一种路由表的更新方法及系统
CN105260376A (zh) * 2015-08-17 2016-01-20 北京京东尚科信息技术有限公司 用于集群节点缩扩的方法、设备和系统
CN106331147A (zh) * 2016-09-09 2017-01-11 深圳市彬讯科技有限公司 一种redis分布式调用方法及其系统
CN106453512A (zh) * 2016-09-05 2017-02-22 努比亚技术有限公司 一种Redis集群信息监控装置及方法
CN106682004A (zh) * 2015-11-06 2017-05-17 网宿科技股份有限公司 一种Redis Key管理方法及系统
CN107038127A (zh) * 2017-02-08 2017-08-11 阿里巴巴集团控股有限公司 应用系统及其缓存控制方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150019353A1 (en) * 2012-02-06 2015-01-15 Adstruc, Inc. System for managing the utilization of a plurality of outdoor advertising units

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291296A (zh) * 2011-08-04 2011-12-21 中兴通讯股份有限公司 一种路由表的更新方法及系统
CN105260376A (zh) * 2015-08-17 2016-01-20 北京京东尚科信息技术有限公司 用于集群节点缩扩的方法、设备和系统
CN106682004A (zh) * 2015-11-06 2017-05-17 网宿科技股份有限公司 一种Redis Key管理方法及系统
CN106453512A (zh) * 2016-09-05 2017-02-22 努比亚技术有限公司 一种Redis集群信息监控装置及方法
CN106331147A (zh) * 2016-09-09 2017-01-11 深圳市彬讯科技有限公司 一种redis分布式调用方法及其系统
CN107038127A (zh) * 2017-02-08 2017-08-11 阿里巴巴集团控股有限公司 应用系统及其缓存控制方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Redis的分布式消息服务的设计与实现;曾泉匀;《中国优秀硕士学位论文全文数据库信息科技辑》;20150415;全文 *

Also Published As

Publication number Publication date
CN109818767A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
US11960915B2 (en) Method and apparatus for creating virtual machine based on parameter information of a virtual network interface card
CN111464355B (zh) Kubernetes容器集群的伸缩容控制方法、装置和网络设备
CN110032571B (zh) 业务流程处理方法、装置、存储介质及计算设备
CN107545338B (zh) 业务数据处理方法及业务数据处理系统
CN105933408B (zh) 一种Redis通用中间件的实现方法及装置
US10944655B2 (en) Data verification based upgrades in time series system
CN104572727A (zh) 一种数据查询方法及装置
CN107547595B (zh) 云资源调度系统、方法及装置
CN106712981B (zh) 一种节点变更通知方法及装置
CN110289999B (zh) 一种数据处理方法、系统及装置
CN109960575B (zh) 一种计算能力共享方法、系统及相关设备
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
CN107153643B (zh) 数据表连接方法及装置
US20160234129A1 (en) Communication system, queue management server, and communication method
CN105740085A (zh) 容错处理方法及装置
CN103259869B (zh) 一种基于分布式数据存储的集中信息管理方法
CN112650812A (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
CN104580428A (zh) 一种数据路由方法、数据管理装置和分布式存储系统
CN109818767B (zh) 一种Redis集群容量调整的方法、装置及存储介质
CN108733477B (zh) 数据集群化处理的方法、装置及设备
CN110609707B (zh) 在线数据处理系统生成方法、装置及设备
CN112631994A (zh) 数据迁移方法及系统
CN108984105B (zh) 对网络存储设备中的复制任务进行分配的方法和设备
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
CN108173689B (zh) 负载均衡数据的输出系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant