CN110445828A - 一种基于Redis的数据分布式处理方法及其相关设备 - Google Patents

一种基于Redis的数据分布式处理方法及其相关设备 Download PDF

Info

Publication number
CN110445828A
CN110445828A CN201910516420.8A CN201910516420A CN110445828A CN 110445828 A CN110445828 A CN 110445828A CN 201910516420 A CN201910516420 A CN 201910516420A CN 110445828 A CN110445828 A CN 110445828A
Authority
CN
China
Prior art keywords
data
redis
node
key
service cluster
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.)
Granted
Application number
CN201910516420.8A
Other languages
English (en)
Other versions
CN110445828B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910516420.8A priority Critical patent/CN110445828B/zh
Publication of CN110445828A publication Critical patent/CN110445828A/zh
Application granted granted Critical
Publication of CN110445828B publication Critical patent/CN110445828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于大数据技术领域,涉及一种基于Redis的数据分布式处理方法及其相关设备,所述方法包括:根据Redis服务集群的工作状态确定节点数量;通过所述Redis服务集群的任一节点接收输入数据,存储输入数据并更新数据队列开始标志key的赋值为第一状态值,当存储所述输入数据完毕时,更新数据队列结束标志key的赋值为第二状态值,并记录待处理数据条数key的数据条数;从所述待处理数据队列key读取需要处理的所述输入数据进行业务处理,将各所述应用服务进行业务处理的处理结果保存至处理结果key;从所述处理结果key获取所有所述应用服务的处理结果。本发明提供的方案能够大大提升数据处理效率,且能够动态调整所述Redis服务集群的数据处理能力。

Description

一种基于Redis的数据分布式处理方法及其相关设备
技术领域
本发明实施例属于大数据技术领域,尤其涉及一种基于Redis的数据分布式处理方法、装置及计算机设备、存储介质。
背景技术
目前,面对日益庞大的数据,对于数据的处理时效性要求越来越高,单服务器处理数据的局限性越发凸显,现有技术中尝试通过多线程的处理方式来提高处理速度,然后这类多线程的处理方式并不是并行处理,处理速度很难横向提升,对服务器的负荷依然很大。
发明内容
有鉴于此,本发明实施例提供一种基于Redis的数据分布式处理方法、装置及计算机设备、存储介质,以解决现有技术中采用多线程方式进行大量数据处理存在的处理速度低、处理能力无法横向扩展的问题。
第一方面,本发明实施例提供一种基于Redis的数据分布式处理方法,包括:
判断Redis服务集群当前的工作状态是否需要改变节点数量,并在所述 Redis服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,否则维持节点数量不变;
通过所述Redis服务集群的任一节点接收请求接入的服务提供的输入数据;
控制所述Redis服务集群存储所述输入数据至待处理数据队列key,并更新数据队列开始标志key的赋值为第一状态值,当所述Redis服务集群完成所述输入数据的存储时,更新数据队列结束标志key的赋值为第二状态值,并记录所述待处理数据条数key的数据条数;
当所述Redis服务集群的各所述节点读取到所述数据队列开始标志key 的赋值为第一状态值时,控制各所述节点的应用服务从所述待处理数据队列 key读取需要处理的所述输入数据进行业务处理,使所述Redis服务集群更新各所述应用程序的处理器标识key为第三状态值,并将各所述应用服务进行业务处理的处理结果保存至处理结果key;
当任一所述应用服务从所述待处理数据队列key中读取数据为空,且读取到所述数据队列结束标志key的赋值为第二状态值时,控制所述Redis服务集群更新对应的所述应用服务的处理器标识key的赋值为第四状态值;
在所有参与业务处理的所述应用服务处理完毕后,控制接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果。
作为本发明可实施的方式,所述判断所述Redis服务集群当前的工作状态是否需要改变节点数量包括:
统计所述Redis服务集群当前的所述节点数量的数据容量和数据冗余量;根据所述Redis服务集群当前的所述节点数量的数据容量是否满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,以及所述数据冗余量是否达到冗余量阈值来判断是否需要改变节点的数量。
作为本发明可实施的方式,所述改变所述Redis服务集群的节点数量包括:
当所述Redis服务集群当前的所述节点数量的数据容量满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,获取所述数据冗余量达到冗余量阈值时,为所述Redis服务集群删除至少一个节点;
当所述Redis服务集群当前的所述节点数量的数据容量不满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,且获取所述数据冗余量小于冗余量阈值时,为所述Redis服务集群增加至少一个节点。
作为本发明可实施的方式,所述改变所述Redis服务集群的节点数量包括:增加或者删除所述Redis服务集群的至少一个从节点和/或至少一个主节点。
作为本发明可实施的方式,删除所述Redis服务集群的至少一个从节点包括:
确定待删除从节点的ID、数据端口以及IP地址,将所述待删除从节点的 slot插槽转移至任一所述Redis服务集群的主节点,根据所述待删除从节点的ID、数据端口以及IP地址删除所述待删除从节点,将接收所述slot插槽的主节点的ID作为所述待删除从节点的slot插槽的数据源ID;
或者,增加所述Redis服务集群的至少一个从节点包括:
启动用作所述从节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述从节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述从节点分配slot插槽,将新的所述从节点设定为所述Redis服务集群的任一主节点的从节点。
作为本发明可实施的方式,删除所述Redis服务集群的至少一个主节点包括:
确定待删除主节点的ID、数据端口以及IP地址,将所述待删除主节点的 slot插槽转移至剩余的任一主节点,根据所述待删除主节点的ID、数据端口以及IP地址删除所述待删除主节点,将接收所述slot插槽的主节点的ID作为所述待删除主节点的slot插槽的数据源ID;
或者,增加所述Redis服务集群的至少一个主节点包括:
启动用作所述主节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述主节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述主节点分配slot插槽。
作为本发明可实施的方式,所述方法还包括:
当从所述处理结果key获取所有所述应用服务的所述处理结果的时间超时时,记录相应的超时日志,并对相同的所述输入数据重新进行处理;或
当所有所述应用服务的处理器标识key的赋值均为所述第四状态值时,统计已处理的数据条数,当所述已处理的数据条数与所述待处理数据条数key 的数据条数不相等时,记录相应的数量不等日志,并对相同的所述输入数据重新进行处理。
第二方面,本发明实施例提供一种基于Redis的数据分布式处理装置,包括:
节点调整模块,用于判断Redis服务集群当前的工作状态是否需要改变节点数量,并在所述Redis服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,否则维持节点数量不变;
接收控制模块,用于通过所述Redis服务集群的任一节点接收请求接入的服务提供的输入数据;
存储控制模块,用于控制所述Redis服务集群存储所述输入数据至待处理数据队列key,并更新数据队列开始标志key的赋值为第一状态值,当所述 Redis服务集群完成所述输入数据的存储时,更新数据队列结束标志key的赋值为第二状态值,并记录所述待处理数据条数key的数据条数;
业务处理控制模块,用于当所述Redis服务集群的各所述节点读取到所述数据队列开始标志key的赋值为第一状态值时,控制各所述节点的应用服务从所述待处理数据队列key读取需要处理的所述输入数据进行业务处理,使所述Redis服务集群更新各所述应用程序的处理器标识key为第三状态值,并将各所述应用服务进行业务处理的处理结果保存至处理结果key;以及当任一所述应用服务从所述待处理数据队列key中读取数据为空,且读取到所述数据队列结束标志key的赋值为第二状态值时,控制所述Redis服务集群更新对应的所述应用服务的处理器标识key的赋值为第四状态值;
输出控制模块,用于在所有参与业务处理的所述应用服务处理完毕后,控制接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果。
第三方面,本发明实施例提供一种计算机设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使得所述至少一个处理器能够执行如上所述的基于Redis的数据分布式处理方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时实现如上所述的基于Redis的数据分布式处理方法的步骤。
根据本发明实施例提供的基于Redis的数据分布式处理方法、装置及计算机设备、存储介质,通过判断所述Redis服务集群当前的工作状态是否需要改变节点数量,并当所述Redis服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,因此实现了动态增加或者删除所述 Redis服务集群的节点数,动态调整所述Redis服务集群的数据处理能力。
其次,所述基于Redis的数据分布式处理方法根据数据队列开始标志key、数据队列结束标志key、待处理数据条数key、处理器标识key、待处理数据队列key等指令对所述输入数据进行分布式处理,使得所述基于Redis的数据分布式处理方法能够大大提升数据处理效率,充分利用所述Redis服务集群的数据处理能力,实现了多节点无干扰数据并行处理。
附图说明
为了更清楚地说明本发明的方案,下面将对实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于Redis的数据分布式处理方法的流程图;
图2为本发明实施例提供的数据处理的架构图;
图3为本发明实施例提供的基于Redis的数据分布式处理装置的结构框图;
图4为本发明实施例提供的基于Redis的数据分布式处理装置的另一结构框图;
图5为本发明实施例提供的计算机设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
在说明书中的各个位置出现的“实施例”该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供一种基于Redis的数据分布式处理方法,其中Redis 是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的存储系统。下文中将提到的各类 Key指的是Redis的命令,也称为键,不同的Key代表了不同的命令,Key可以被定义、执行和取消,此外Key的赋值可以更新。
具体的,如图1所示,所述基于Redis的数据分布式处理方法包括:
S10、判断Redis服务集群当前的工作状态是否需要改变节点数量,并在所述Redis服务集群当前的工作状态需要改变节点数量时执行S20,否者执行 S30;
S20、改变所述Redis服务集群的节点数量;
S30、维持节点数量不变;
S40、通过所述Redis服务集群的任一节点接收请求接入的服务提供的输入数据;
S50、控制所述Redis服务集群存储所述输入数据至待处理数据队列key,并更新数据队列开始标志key的赋值为第一状态值,当所述Redis服务集群完成所述输入数据的存储时,更新数据队列结束标志key的赋值为第二状态值,并记录所述待处理数据条数key的数据条数;
S60、当所述Redis服务集群的各所述节点读取到所述数据队列开始标志 key的赋值为第一状态值时,控制各所述节点的应用服务从所述待处理数据队列key读取需要处理的所述输入数据进行业务处理,使所述Redis服务集群更新各所述应用程序的处理器标识key为第三状态值,并将各所述应用服务进行业务处理的处理结果保存至处理结果key;
S70、当任一所述应用服务从所述待处理数据队列key中读取数据为空,且读取到所述数据队列结束标志key的赋值为第二状态值时,控制所述Redis 服务集群更新对应的所述应用服务的处理器标识key的赋值为第四状态值;
S80、在所有参与业务处理的所述应用服务处理完毕后,控制接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果。
对于步骤S10,在本发明一些实施例中,所述判断所述Redis服务集群当前的工作状态是否需要改变节点数量包括:统计所述Redis服务集群当前的所述节点数量的数据容量和数据冗余量;根据所述Redis服务集群当前的所述节点数量的数据容量是否满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,以及所述数据冗余量是否达到冗余量阈值来判断是否需要改变节点的数量。
相应的,对于步骤S2O,所述改变所述Redis服务集群的节点数量包括:当所述Redis服务集群当前的所述节点数量的数据容量满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,获取所述数据冗余量达到冗余量阈值时,为所述Redis服务集群删除至少一个节点;当所述Redis服务集群当前的所述节点数量的数据容量不满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,且获取所述数据冗余量小于冗余量阈值时,为所述Redis服务集群增加至少一个节点。
进一步地,在本发明实施例中,所述Redis服务集群的节点可包括主节点和从街道,相应的,所述改变所述Redis服务集群的节点数量包括:增加或者删除所述Redis服务集群的至少一个从节点和/或至少一个主节点。
下面对增加或者删除从节点或者主节点的过程进行说明。
(1)从节点
首先对于删除所述Redis服务集群的至少一个从节点的过程可包括:确定待删除从节点的ID、数据端口以及IP地址,将所述待删除从节点的slot 插槽转移至任一所述Redis服务集群的主节点,根据所述待删除从节点的ID、数据端口以及IP地址删除所述待删除从节点,将接收所述slot插槽的主节点的ID作为所述待删除从节点的slot插槽的数据源ID;
其次,对于增加所述Redis服务集群的至少一个从节点的步骤可包括:启动用作所述从节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述从节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述从节点分配slot插槽,将新的所述从节点设定为所述Redis服务集群的任一主节点的从节点。
(2)主节点
首先,对于删除所述Redis服务集群的至少一个主节点的过程可包括:确定待删除主节点的ID、数据端口以及IP地址,将所述待删除主节点的slot 插槽转移至剩余的任一主节点,根据所述待删除主节点的ID、数据端口以及 IP地址删除所述待删除主节点,将接收所述slot插槽的主节点的ID作为所述待删除主节点的slot插槽的数据源ID;
其次,对于增加所述Redis服务集群的至少一个主节点的过程包括:启动用作所述主节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述主节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述主节点分配slot插槽。
对于步骤S40,所述输入数据由请求接入的服务提供,参阅图2,请求接入的服务把要处理的输入数据提供给Redis服务集群进行存储和后续处理,位于不同节点的应用服务1至应用服务N均与所述Redis服务集群保持长连接。需要说明的是,在另外的实施例中,步骤S40也可以是在步骤S10之前。
对于步骤S50,所述第一状态值和所述第二状态值在具体的实施例中可分别为“start”和“end”,分别表示数据存储的开始与结束。其中,所述数据队列key的value类型为List类型;所述数据队列开始标志key的value类型为String类型;。
对于步骤S60,所述第三状态值可以是“runc”,表示应用程序正处于数据处理状态。其中,所述数据队列结束标志key的value类型为String类型;所述待处理数据条数key的value类型为List类型;所述待处理数据队列key 的value类型为List类型,所述待处理数据队列key用于存放需要处理的所述输入数据。结合图2,所述应用服务1至应用服务N轮询所述Redis服务集群,从所述Redis服务集群获取需要处理的数据进行相应的业务处理,并向所述 Redis服务集群返回处理结果。
对于步骤S70,所述第四状态值可以是“runc”,表示应用程序处于数据处理结束状态。其中,所述处理器标识key的value类型为List类型,所述处理器标识key用于存放参与数据处理的服务信息;所述处理结果key用于所述业务处理的处理结果。
对于步骤S80,所述在所有参与业务处理的所述应用服务处理完毕后,使接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果的步骤包括:接收输入数据的所述节点轮询获取所有所述应用服务的处理器标识key的赋值,当所有所述应用服务的处理器标识key的赋值均为所述第四状态值时,所述节点从所述处理结果key获取所有所述应用服务的所述处理结果。
进一步地,在本发明一些实施例中,当从所述处理结果key获取所有所述应用服务的所述处理结果的时间超时时,记录相应的超时日志,并重新执行步骤S40至S70,对相同的所述输入数据重新进行处理。
在另一些实施例中,当所有所述应用服务的处理器标识key的赋值均为所述第四状态值时,统计已处理的数据条数,当所述已处理的数据条数与所述待处理数据条数key的数据条数不相等时,记录相应的数量不等日志,并重新执行步骤S40至S70,对相同的所述输入数据重新进行处理。
根据本发明实施例提供的基于Redis的数据分布式处理方法,通过判断所述Redis服务集群当前的工作状态是否需要改变节点数量,并当所述Redis 服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,因此实现了动态增加或者删除所述Redis服务集群的节点数,动态调整所述Redis服务集群的数据处理能力。
其次,所述基于Redis的数据分布式处理方法根据数据队列开始标志key、数据队列结束标志key、待处理数据条数key、处理器标识key、待处理数据队列key等指令对所述输入数据进行分布式处理,使得所述基于Redis的数据分布式处理方法能够大大提升数据处理效率,充分利用所述Redis服务集群的数据处理能力,实现了多节点无干扰数据并行处理。
本发明实施例提供一种基于Redis的数据分布式处理装置,如图3所示,所述装置包括节点调整模块10、接收控制模块20、存储控制模块30、业务处理控制模块40和输出控制模块50,其中:
所述节点调整模块10用于判断Redis服务集群当前的工作状态是否需要改变节点数量,并在所述Redis服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,否则维持节点数量不变;
所述接收控制模块20用于通过所述Redis服务集群的任一节点接收请求接入的服务提供的输入数据;在本实施例中,所述输入数据由请求接入的服务提供,具体可参阅图2和上述实施例中相关说明。
所述存储控制模块30用于控制所述Redis服务集群存储所述输入数据至待处理数据队列key,并更新数据队列开始标志key的赋值为第一状态值,当所述Redis服务集群完成所述输入数据的存储时,更新数据队列结束标志key 的赋值为第二状态值,并记录所述待处理数据条数key的数据条数;所述第一状态值和所述第二状态值在具体的实施例中可分别为“start”和“end”,分别表示数据存储的开始与结束。其中,所述数据队列key的value类型为 List类型;所述数据队列开始标志key的value类型为String类型;。
所述业务处理控制模块40用于当所述Redis服务集群的各所述节点读取到所述数据队列开始标志key的赋值为第一状态值时,控制各所述节点的应用服务从所述待处理数据队列key读取需要处理的所述输入数据进行业务处理,使所述Redis服务集群更新各所述应用程序的处理器标识key为第三状态值,并将各所述应用服务进行业务处理的处理结果保存至处理结果key;以及当任一所述应用服务从所述待处理数据队列key中读取数据为空,且读取到所述数据队列结束标志key的赋值为第二状态值时,控制所述Redis服务集群更新对应的所述应用服务的处理器标识key的赋值为第四状态值;所述第三状态值可以是“runc”,表示应用程序正处于数据处理状态;所述第四状态值可以是“runc”,表示应用程序处于数据处理结束状态。其中,所述数据队列结束标志key的value类型为String类型;所述待处理数据条数key 的value类型为List类型;所述待处理数据队列key的value类型为List类型,所述待处理数据队列key用于存放需要处理的所述输入数据;所述处理器标识key的value类型为List类型,所述处理器标识key用于存放参与数据处理的服务信息;所述处理结果key用于所述业务处理的处理结果。结合图2,所述应用服务1至应用服务N轮询所述Redis服务集群,从所述Redis服务集群获取需要处理的数据进行相应的业务处理,并向所述Redis服务集群返回处理结果。
所述输出控制模块50用于在所有参与业务处理的所述应用服务处理完毕后,控制接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果。
在本发明一些实施例中,所述节点调整模块10在判断Redis服务集群当前的工作状态是否需要改变节点数量时,具体用于统计所述Redis服务集群当前的所述节点数量的数据容量和数据冗余量;根据所述Redis服务集群当前的所述节点数量的数据容量是否满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,以及所述数据冗余量是否达到冗余量阈值来判断是否需要改变节点的数量。
相应的,所述节点调整模块10改变所述Redis服务集群的节点数量时,具体用于当所述Redis服务集群当前的所述节点数量的数据容量满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,获取所述数据冗余量达到冗余量阈值时,为所述Redis服务集群删除至少一个节点;当所述Redis服务集群当前的所述节点数量的数据容量不满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,且获取所述数据冗余量小于冗余量阈值时,为所述Redis服务集群增加至少一个节点。
进一步地,在本发明实施例中,所述Redis服务集群的节点可包括主节点和从街道,相应的,所述节点调整模块10改变所述Redis服务集群的节点数量包括:增加或者删除所述Redis服务集群的至少一个从节点和/或至少一个主节点。
下面对增加或者删除从节点或者主节点的过程进行说明。
(1)从节点
首先,对于所述节点调整模块10删除所述Redis服务集群的至少一个从节点的过程可包括:确定待删除从节点的ID、数据端口以及IP地址,将所述待删除从节点的slot插槽转移至任一所述Redis服务集群的主节点,根据所述待删除从节点的ID、数据端口以及IP地址删除所述待删除从节点,将接收所述slot插槽的主节点的ID作为所述待删除从节点的slot插槽的数据源ID;
其次,对于所述节点调整模块10增加所述Redis服务集群的至少一个从节点的步骤可包括:启动用作所述从节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述从节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述从节点分配slot插槽,将新的所述从节点设定为所述Redis 服务集群的任一主节点的从节点。
(2)主节点
首先,对于所述节点调整模块10删除所述Redis服务集群的至少一个主节点的过程可包括:确定待删除主节点的ID、数据端口以及IP地址,将所述待删除主节点的slot插槽转移至剩余的任一主节点,根据所述待删除主节点的ID、数据端口以及IP地址删除所述待删除主节点,将接收所述slot插槽的主节点的ID作为所述待删除主节点的slot插槽的数据源ID;
其次,对于所述节点调整模块10增加所述Redis服务集群的至少一个主节点的过程包括:启动用作所述主节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述主节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述主节点分配slot插槽。
在本实施例中,所述输出控制模块50在所有参与业务处理的所述应用服务处理完毕后,使接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果时,具体用于接收输入数据的所述节点轮询获取所有所述应用服务的处理器标识key的赋值,当所有所述应用服务的处理器标识 key的赋值均为所述第四状态值时,所述节点从所述处理结果key获取所有所述应用服务的所述处理结果。
进一步地,如图4所示,所述装置还包括监控模块60,在本发明一些实施例中,所述监控模块60用于当从所述处理结果key获取所有所述应用服务的所述处理结果的时间超时,记录相应的超时日志。此时将通过所述接收控制模块20、存储控制模块30、业务处理控制模块40和输出控制模块50对相同的所述输入数据重新进行处理。
在另一些实施例中,所述监控模块60用于当所有所述应用服务的处理器标识key的赋值均为所述第四状态值时,统计已处理的数据条数,当所述已处理的数据条数与所述待处理数据条数key的数据条数不相等时,记录相应的数量不等日志。此时将通过所述接收控制模块20、存储控制模块30、业务处理控制模块40和输出控制模块50对相同的所述输入数据重新进行处理。
根据本发明实施例提供的基于Redis的数据分布式处理装置,通过判断所述Redis服务集群当前的工作状态是否需要改变节点数量,并当所述Redis 服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,因此实现了动态增加或者删除所述Redis服务集群的节点数,动态调整所述Redis服务集群的数据处理能力。
其次,所述基于Redis的数据分布式处理方法根据数据队列开始标志key、数据队列结束标志key、待处理数据条数key、处理器标识key、待处理数据队列key等指令对所述输入数据进行分布式处理,使得所述基于Redis的数据分布式处理方法能够大大提升数据处理效率,充分利用所述Redis服务集群的数据处理能力,实现了多节点无干扰数据并行处理。
本发明实施例还提供一种计算机设备,如图5所示,所述计算机设备包括至少一个处理器501,以及与所述至少一个处理器501通信连接的存储器 502,图5中示出一个处理器501,所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行,以使所述至少一个处理器501能够执行如上所述的基于Redis的数据分布式处理方法的步骤。
具体的,本发明实施例中的存储器502为非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请上述实施例中的基于Redis的数据分布式处理方法对应的程序指令/模块;所述处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及进行数据处理,即实现上述方法实施例中所述的基于Redis的数据分布式处理方法。
在一些实施例中,所述存储器502可以包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需要的应用程序;数据存储区可存储基于Redis的数据分布式处理方法的处理过程中所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件;
在一些实施例中,存储器502可选包括相对于处理器501远程设置的远程存储器,这些远程存储器可以通过网络连接至执行域名过滤处理的计算机设备,前述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本发明实施例中,执行基于Redis的数据分布式处理方法的计算机设备还可以包括输入装置503和输出装置504;其中,输入装置503可获取用户在计算机设备上的操作信息,输出装置504可包括显示屏等显示设备。在本发明实施例中,所述处理器501、存储器502、输入装置503和输出装置504 可以通过总线或者其他方式连接,图5中以通过总线连接为例。
根据本发明实施例提供的计算机设备,通过处理器501执行存储器502 中的代码时能够执行上述实施例中基于Redis的数据分布式处理方法的步骤,且具有上述方法实施例的技术效果,未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,能够实现如上所述的基于Redis的数据分布式处理方法的步骤,当执行所述方法的步骤时,具有上述方法实施例的技术效果,未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。
本发明实施例还提供一种计算机程序产品,所述产品可执行本申请方法实施例中所提供的基于Redis的数据分布式处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。
需要说明的是,在本发明上述实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等) 或智能终端设备或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明所提供的上述实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,至少两个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

Claims (10)

1.一种基于Redis的数据分布式处理方法,其特征在于,包括:
判断Redis服务集群当前的工作状态是否需要改变节点数量,并在所述Redis服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,否则维持节点数量不变;
通过所述Redis服务集群的任一节点接收请求接入的服务提供的输入数据;
控制所述Redis服务集群存储所述输入数据至待处理数据队列key,并更新数据队列开始标志key的赋值为第一状态值,当所述Redis服务集群完成所述输入数据的存储时,更新数据队列结束标志key的赋值为第二状态值,并记录所述待处理数据条数key的数据条数;
当所述Redis服务集群的各所述节点读取到所述数据队列开始标志key的赋值为第一状态值时,控制各所述节点的应用服务从所述待处理数据队列key读取需要处理的所述输入数据进行业务处理,使所述Redis服务集群更新各所述应用程序的处理器标识key为第三状态值,并将各所述应用服务进行业务处理的处理结果保存至处理结果key;
当任一所述应用服务从所述待处理数据队列key中读取数据为空,且读取到所述数据队列结束标志key的赋值为第二状态值时,控制所述Redis服务集群更新对应的所述应用服务的处理器标识key的赋值为第四状态值;
在所有参与业务处理的所述应用服务处理完毕后,控制接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果。
2.根据权利要求1所述的基于Redis的数据分布式处理方法,其特征在于,所述判断所述Redis服务集群当前的工作状态是否需要改变节点数量包括:
统计所述Redis服务集群当前的所述节点数量的数据容量和数据冗余量;根据所述Redis服务集群当前的所述节点数量的数据容量是否满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,以及所述数据冗余量是否达到冗余量阈值来判断是否需要改变节点的数量。
3.根据权利要求2所述的基于Redis的数据分布式处理方法,其特征在于,所述改变所述Redis服务集群的节点数量包括:
当所述Redis服务集群当前的所述节点数量的数据容量满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,获取所述数据冗余量达到冗余量阈值时,为所述Redis服务集群删除至少一个节点;
当所述Redis服务集群当前的所述节点数量的数据容量不满足请求接入的服务提供的输入数据的量和所有参与业务处理的所述应用服务的数据吞吐量,且获取所述数据冗余量小于冗余量阈值时,为所述Redis服务集群增加至少一个节点。
4.根据权利要求2或3所述的基于Redis的数据分布式处理方法,其特征在于,所述改变所述Redis服务集群的节点数量包括:
增加或者删除所述Redis服务集群的至少一个从节点和/或至少一个主节点。
5.根据权利要求4所述的基于Redis的数据分布式处理方法,其特征在于,删除所述Redis服务集群的至少一个从节点包括:
确定待删除从节点的ID、数据端口以及IP地址,将所述待删除从节点的slot插槽转移至任一所述Redis服务集群的主节点,根据所述待删除从节点的ID、数据端口以及IP地址删除所述待删除从节点,将接收所述slot插槽的主节点的ID作为所述待删除从节点的slot插槽的数据源ID;
或者,增加所述Redis服务集群的至少一个从节点包括:
启动用作所述从节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述从节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述从节点分配slot插槽,将新的所述从节点设定为所述Redis服务集群的任一主节点的从节点。
6.根据权利要求4所述的基于Redis的数据分布式处理方法,其特征在于,删除所述Redis服务集群的至少一个主节点包括:
确定待删除主节点的ID、数据端口以及IP地址,将所述待删除主节点的slot插槽转移至剩余的任一主节点,根据所述待删除主节点的ID、数据端口以及IP地址删除所述待删除主节点,将接收所述slot插槽的主节点的ID作为所述待删除主节点的slot插槽的数据源ID;
或者,增加所述Redis服务集群的至少一个主节点包括:
启动用作所述主节点的服务器,在所述服务器上创建文件夹载入并运行相应的配置文件,将所述服务器作为新的所述主节点添加到所述Redis服务集群中,并与所述Redis服务集群中已有的主节点和从节点互连,为新的所述主节点分配slot插槽。
7.根据权利要求1至3任一项所述的基于Redis的数据分布式处理方法,其特征在于,所述方法还包括:
当从所述处理结果key获取所有所述应用服务的所述处理结果的时间超时时,记录相应的超时日志,并对相同的所述输入数据重新进行处理;或者
当所有所述应用服务的处理器标识key的赋值均为所述第四状态值时,统计已处理的数据条数,当所述已处理的数据条数与所述待处理数据条数key的数据条数不相等时,记录相应的数量不等日志,并对相同的所述输入数据重新进行处理。
8.一种基于Redis的数据分布式处理装置,其特征在于,包括:
节点调整模块,用于判断Redis服务集群当前的工作状态是否需要改变节点数量,并在所述Redis服务集群当前的工作状态需要改变节点数量时,改变所述Redis服务集群的节点数量,否则维持节点数量不变;
接收控制模块,用于通过所述Redis服务集群的任一节点接收请求接入的服务提供的输入数据;
存储控制模块,用于控制所述Redis服务集群存储所述输入数据至待处理数据队列key,并更新数据队列开始标志key的赋值为第一状态值,当所述Redis服务集群完成所述输入数据的存储时,更新数据队列结束标志key的赋值为第二状态值,并记录所述待处理数据条数key的数据条数;
业务处理控制模块,用于当所述Redis服务集群的各所述节点读取到所述数据队列开始标志key的赋值为第一状态值时,控制各所述节点的应用服务从所述待处理数据队列key读取需要处理的所述输入数据进行业务处理,使所述Redis服务集群更新各所述应用程序的处理器标识key为第三状态值,并将各所述应用服务进行业务处理的处理结果保存至处理结果key;以及当任一所述应用服务从所述待处理数据队列key中读取数据为空,且读取到所述数据队列结束标志key的赋值为第二状态值时,控制所述Redis服务集群更新对应的所述应用服务的处理器标识key的赋值为第四状态值;
输出控制模块,用于在所有参与业务处理的所述应用服务处理完毕后,控制接收输入数据的所述节点从所述处理结果key获取所有所述应用服务的处理结果。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至7中任一项所述的基于Redis的数据分布式处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时实现如权利要求1至7中任一项权利要求所述的基于Redis的数据分布式处理方法的步骤。
CN201910516420.8A 2019-06-14 2019-06-14 一种基于Redis的数据分布式处理方法及其相关设备 Active CN110445828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910516420.8A CN110445828B (zh) 2019-06-14 2019-06-14 一种基于Redis的数据分布式处理方法及其相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910516420.8A CN110445828B (zh) 2019-06-14 2019-06-14 一种基于Redis的数据分布式处理方法及其相关设备

Publications (2)

Publication Number Publication Date
CN110445828A true CN110445828A (zh) 2019-11-12
CN110445828B CN110445828B (zh) 2023-04-18

Family

ID=68429177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910516420.8A Active CN110445828B (zh) 2019-06-14 2019-06-14 一种基于Redis的数据分布式处理方法及其相关设备

Country Status (1)

Country Link
CN (1) CN110445828B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258724A (zh) * 2020-01-14 2020-06-09 平安银行股份有限公司 一种分布式系统的数据处理方法、装置、设备和存储介质
CN112256931A (zh) * 2020-10-26 2021-01-22 北京神州数字科技有限公司 一种数据提取方法
CN112463828A (zh) * 2020-11-02 2021-03-09 马上消费金融股份有限公司 一种数据处理方法、装置、设备、系统及可读存储介质
CN112737934A (zh) * 2020-12-28 2021-04-30 常州森普信息科技有限公司 一种集群式物联网边缘网关装置及方法
CN113794764A (zh) * 2021-09-10 2021-12-14 小红书科技有限公司 服务器集群的请求处理方法、介质和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158911A (zh) * 2014-09-01 2014-11-19 青岛海信电器股份有限公司 一种面向服务器集群的控制方法及系统
CN106453564A (zh) * 2016-10-18 2017-02-22 北京京东尚科信息技术有限公司 弹性云分布式海量请求处理的方法、装置及系统
CN108833503A (zh) * 2018-05-29 2018-11-16 华南理工大学 一种基于ZooKeeper的Redis集群方法
US10216770B1 (en) * 2014-10-31 2019-02-26 Amazon Technologies, Inc. Scaling stateful clusters while maintaining access

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158911A (zh) * 2014-09-01 2014-11-19 青岛海信电器股份有限公司 一种面向服务器集群的控制方法及系统
US10216770B1 (en) * 2014-10-31 2019-02-26 Amazon Technologies, Inc. Scaling stateful clusters while maintaining access
CN106453564A (zh) * 2016-10-18 2017-02-22 北京京东尚科信息技术有限公司 弹性云分布式海量请求处理的方法、装置及系统
CN108833503A (zh) * 2018-05-29 2018-11-16 华南理工大学 一种基于ZooKeeper的Redis集群方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258724A (zh) * 2020-01-14 2020-06-09 平安银行股份有限公司 一种分布式系统的数据处理方法、装置、设备和存储介质
CN111258724B (zh) * 2020-01-14 2024-02-06 平安银行股份有限公司 一种分布式系统的数据处理方法、装置、设备和存储介质
CN112256931A (zh) * 2020-10-26 2021-01-22 北京神州数字科技有限公司 一种数据提取方法
CN112463828A (zh) * 2020-11-02 2021-03-09 马上消费金融股份有限公司 一种数据处理方法、装置、设备、系统及可读存储介质
CN112737934A (zh) * 2020-12-28 2021-04-30 常州森普信息科技有限公司 一种集群式物联网边缘网关装置及方法
CN113794764A (zh) * 2021-09-10 2021-12-14 小红书科技有限公司 服务器集群的请求处理方法、介质和电子设备

Also Published As

Publication number Publication date
CN110445828B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN110445828A (zh) 一种基于Redis的数据分布式处理方法及其相关设备
US11789925B2 (en) System and method for conditionally updating an item with attribute granularity
US11709600B2 (en) System and method for performing live partitioning in a data store
US20210103604A1 (en) System and method for implementing a scalable data storage service
US9372911B2 (en) System and method for performing replica copying using a physical copy mechanism
US8572091B1 (en) System and method for partitioning and indexing table data using a composite primary key
US11609697B2 (en) System and method for providing a committed throughput level in a data store
US20130179476A1 (en) Scalable billing usage data storage
CN103581250B (zh) 数据处理、发布、获取方法及系统
CN106503058A (zh) 一种数据加载方法、终端和计算集群
CN104166661A (zh) 数据存储系统和数据存储方法
CN109684270A (zh) 数据库归档方法、装置、系统、设备及可读存储介质
CN108696559A (zh) 流处理方法及装置
CN105978744A (zh) 一种资源分配方法、装置及系统
CN110474974A (zh) 存储空间处理方法、设备及计算机可读存储介质
CN110471968A (zh) Etl任务的发布方法、装置、设备及存储介质
CN109818992A (zh) 视频云平台api访问频次控制方法
US10929388B1 (en) Distributed multi-version partitioned mapreduce for a data fabric
JPH0454634A (ja) ソフトウェア資源配布管理システム
CN115509749A (zh) 任务执行方法和装置、存储介质和电子设备
CN116226081A (zh) 数据库弹性伸缩方法、装置、电子设备及存储介质
CN115687382A (zh) 数据处理方法、装置、设备及存储介质
JP2014146144A (ja) クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム

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