CN109684406A - 跨机房的redis集群备份数据的方法、装置、设备及存储介质 - Google Patents
跨机房的redis集群备份数据的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109684406A CN109684406A CN201811347403.8A CN201811347403A CN109684406A CN 109684406 A CN109684406 A CN 109684406A CN 201811347403 A CN201811347403 A CN 201811347403A CN 109684406 A CN109684406 A CN 109684406A
- Authority
- CN
- China
- Prior art keywords
- redis cluster
- value
- key
- main
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开实施例提供了一种跨机房的redis集群备份数据的方法、装置、电子设备及可读存储介质,以实现跨机房的redis集群备份数据。所述方法包括:对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;检测所述双写操作是否失败;在所述双写操作失败的情况下,将成功写入所述主redis集群的key‑value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key‑value值备份到本地。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种跨机房的redis集群备份数据的方法、装置、电子设备及可读存储介质。
背景技术
服务的高可用性是指在多个服务节点组成的***对外提供服务的过程中,其中一个服务节点发生故障时,该发生故障的服务节点不会中断***对外提供的服务。
目前,相关技术提供了跨机房的数据库备份数据的技术方案,提高了跨机房的情况下数据库的高可用性。然而,针对redis集群,相关技术仅提供了同机房的redis集群备份数据的技术方案,该技术方案并不适用于跨机房的redis集群。
发明内容
本公开实施例提供一种跨机房的redis集群备份数据的方法、装置、电子设备及可读存储介质,以实现跨机房的redis集群备份数据。
本公开实施例第一方面提供了一种跨机房的redis集群备份数据的方法,所述方法包括:
对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;
检测所述双写操作是否失败;
在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,检测所述双写操作是否成功,包括:
检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
本公开实施例第二方面提供了一种跨机房的redis集群备份数据的方法,应用于从redis集群,所述从redis集群与主redis集群分布在不同机房,所述方法包括:
从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,将成功写入所述主redis集群的key-value值备份到本地,包括:
将成功写入所述主redis集群的key-value值与本地存储的key-value值比较;
在成功写入所述主redis集群的key-value值是本地存储的key-value值的更新版本的情况下,删除本地存储的key-value值,并将成功写入所述主redis集群的key-value值存储到本地。
在一种可选的实施方式中,所述方法还包括:
检测所述主redis集群是否发生故障;
在所述主redis集群发生故障的情况下,将所述从redis集群配置为新的主redis集群。
本公开实施例第三方面提供了一种跨机房的redis集群备份数据的装置,所述装置包括:
双写操作模块,用于对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;
检测模块,用于检测所述双写操作是否失败;
存储模块,用于在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,所述检测模块包括:
检测子模块,用于检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
本公开实施例第四方面提供了一种跨机房的redis集群备份数据的装置,应用于从redis集群,所述从redis集群与主redis集群分布在不同机房,所述装置包括:
第一读取模块,用于从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
第二读取模块,用于根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
备份模块,用于将成功写入所述主redis集群的key-value值备份到本地。
本公开实施例第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面或第二方面所述的方法中的步骤。
本公开实施例第六方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面或第二方面所述的方法的步骤。
采用上述技术方案,针对跨机房的redis集群,提出了通过kafka队列将已经写入主redis集群的数据从主redis集群传输到从redis集群。如此,在双写失败的情况下,从redis集群可以根据kafka队列中的key值,从主redis集群中读取已经写入主redis集群的key-value值,并备份到本地。实现了跨机房的redis集群备份数据,提高了跨机房的redis集群的可用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的跨机房的redis集群备份数据的方法的流程图;
图2是本申请另一实施例提出的跨机房的redis集群备份数据的方法的流程图;
图3是本申请一实施例提出的跨机房的redis集群备份数据的装置的示意图;
图4是本申请另一实施例提出的跨机房的redis集群备份数据的装置的示意图;
图5是本申请一实施例提供的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,图1是本申请一实施例提出的跨机房的redis集群备份数据的方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11:对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作。
在本实施例中,主redis集群和从redis集群分布在不同机房。在需要缓存数据时,首先对主redis集群进行写操作,将需要缓存的数据缓存到主redis集群,即同步写主redis集群,然后将已经写入主redis集群的数据写入从redis集群,即异步写从redis集群。
步骤S12:检测所述双写操作是否失败。
在一种实施方式中,步骤S12包括以下步骤:
检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
在将已经写入主redis集群的数据写入从redis集群的过程中,可能会出现写入失败的情况,也可能出现缓存队列已满的情况,在这两种情况下确定双写操作失败。
步骤S13:在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
在本实施例中,为了实现跨机房的redis集群备份数据,采用了kafka队列,通过kafka队列将已经写入主redis集群的数据从主redis集群传输到从redis集群。
具体地,将已经写入主redis集群的key-value值中的key值存储到kafka队列,然后从redis集群在检测到kafka队列不为空时,读取kafka队列中的key值,并根据kafka队列中的key值,从主redis集群中读取已经写入主redis集群的key-value值,并备份到本地。
采用上述技术方案,针对跨机房的redis集群,提出了通过kafka队列将已经写入主redis集群的数据从主redis集群传输到从redis集群。如此,在双写失败的情况下,从redis集群可以根据kafka队列中的key值,从主redis集群中读取已经写入主redis集群的key-value值,并备份到本地。实现了跨机房的redis集群备份数据,提高了跨机房的redis集群的可用性。
本申请另一实施例提供一种跨机房的redis集群备份数据的方法,应用于从redis集群,从redis集群与主redis集群分布在不同机房。参考图2,图2是本申请另一实施例提出的跨机房的redis集群备份数据的方法的流程图。如图2所示,该方法包括以下步骤:
步骤S21:从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
步骤S22:根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
步骤S23:将成功写入所述主redis集群的key-value值备份到本地。
在本实施例中,从redis集群在检测到kafka队列不为空时,读取kafka队列中的key值,并根据kafka队列中的key值,从主redis集群中读取已经写入主redis集群的key-value值,并备份到本地。
在一种实施方式中,步骤S23包括:
将成功写入所述主redis集群的key-value值与本地存储的key-value值比较;
在成功写入所述主redis集群的key-value值是本地存储的key-value值的更新版本的情况下,删除本地存储的key-value值,并将成功写入所述主redis集群的key-value值存储到本地。
在本实施例中,从redis集群在从主redis集群中读取已经写入主redis集群的key-value值之后,首先检验已经写入主redis集群的key-value值的版本是否是最新版本,即是否比本地缓存的key-value值的版本新,如果是,则删除本地存储的key-value值,并将已经写入主redis集群的key-value值存储到本地;如果否,则说明无需备份,因而丢弃从主redis集群中读取的已经写入主redis集群的key-value值。
在一种实施方式中,所述方法还包括:
检测所述主redis集群是否发生故障;
在所述主redis集群发生故障的情况下,将所述从redis集群配置为新的主redis集群。
在本实施例中,在采用上述方法实现跨机房的redis集群备份数据之后,从redis集群中缓存的数据与主redis集群中缓存的数据是同步的。如果检测到主redis集群发生故障,则从redis集群可以作为新的主redis集群继续进行数据缓存,提高了跨机房的redis集群的可靠性和可用性。
基于同一发明构思,本申请一实施例提供一种跨机房的redis集群备份数据的装置。参考图3,图3是本申请一实施例提供的跨机房的redis集群备份数据的装置的示意图。如图3所示,该装置包括:
双写操作模块301,用于对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;
检测模块302,用于检测所述双写操作是否失败;
存储模块303,用于在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,所述检测模块包括:
检测子模块,用于检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
基于同一发明构思,本申请另一实施例提供一种跨机房的redis集群备份数据的装置,应用于从redis集群,所述从redis集群与主redis集群分布在不同机房。参考图4,图4是本申请一实施例提供的跨机房的redis集群备份数据的装置的示意图。如图4所示,该装置包括:
第一读取模块401,用于从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
第二读取模块402,用于根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
备份模块403,用于将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,备份模块包括:
比较子模块,用于将成功写入所述主redis集群的key-value值与本地存储的key-value值比较;
处理子模块,用于在成功写入所述主redis集群的key-value值是本地存储的key-value值的更新版本的情况下,删除本地存储的key-value值,并将成功写入所述主redis集群的key-value值存储到本地。
在一种可选的实施方式中,所述装置还包括:
检测模块,用于检测所述主redis集群是否发生故障;
配置模块,用于在所述主redis集群发生故障的情况下,将所述从redis集群配置为新的主redis集群。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。
图5是本申请一实施例提供的电子设备500的示意图。例如,电子设备500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述实施故障转移的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理部件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理***,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如所述组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行两种跨机房的redis集群备份数据的方法,具体地,第一种方法跨机房的redis集群备份数据的方法包括:
对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;
检测所述双写操作是否失败;
在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,检测所述双写操作是否成功,包括:
检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
第二种跨机房的redis集群备份数据的方法应用于从redis集群,所述从redis集群与主redis集群分布在不同机房,所述方法包括:
从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
将成功写入所述主redis集群的key-value值备份到本地。
在一种可选的实施方式中,将成功写入所述主redis集群的key-value值备份到本地,包括:
将成功写入所述主redis集群的key-value值与本地存储的key-value值比较;
在成功写入所述主redis集群的key-value值是本地存储的key-value值的更新版本的情况下,删除本地存储的key-value值,并将成功写入所述主redis集群的key-value值存储到本地。
在一种可选的实施方式中,所述方法还包括:
检测所述主redis集群是否发生故障;
在所述主redis集群发生故障的情况下,将所述从redis集群配置为新的主redis集群。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备500的处理器520执行以完成上述跨机房的redis集群备份数据的方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述跨机房的redis集群备份数据的方法的步骤。
在此提供的跨机房的redis集群备份数据的方法不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的实施故障转移的方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种跨机房的redis集群备份数据的方法,其特征在于,所述方法包括:
对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;
检测所述双写操作是否失败;
在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
2.根据权利要求1所述的方法,其特征在于,检测所述双写操作是否成功,包括:
检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
3.一种跨机房的redis集群备份数据的方法,其特征在于,应用于从redis集群,所述从redis集群与主redis集群分布在不同机房,所述方法包括:
从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
将成功写入所述主redis集群的key-value值备份到本地。
4.根据权利要求3所述的方法,其特征在于,将成功写入所述主redis集群的key-value值备份到本地,包括:
将成功写入所述主redis集群的key-value值与本地存储的key-value值比较;
在成功写入所述主redis集群的key-value值是本地存储的key-value值的更新版本的情况下,删除本地存储的key-value值,并将成功写入所述主redis集群的key-value值存储到本地。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
检测所述主redis集群是否发生故障;
在所述主redis集群发生故障的情况下,将所述从redis集群配置为新的主redis集群。
6.一种跨机房的redis集群备份数据的装置,其特征在于,所述装置包括:
双写操作模块,用于对分布在不同机房的主redis集群和从redis集群进行双写操作,所述双写操作包括对所述主redis集群进行的写操作,以及,在针对所述主redis集群进行的写操作成功之后针对所述从redis集群进行的写操作;
检测模块,用于检测所述双写操作是否失败;
存储模块,用于在所述双写操作失败的情况下,将成功写入所述主redis集群的key-value值中的key值存储到kafka队列,以使得所述从redis集群根据所述kafka队列中的key值,将成功写入所述主redis集群的key-value值备份到本地。
7.根据权利要求6所述的装置,其特征在于,所述检测模块包括:
检测子模块,用于检测针对所述从redis集群进行的写操作是否失败,或者,检测用于针对所述从redis集群进行写操作的缓存队列是否已满,其中,所述双写操作失败的情况为针对所述从redis集群进行的写操作是否失败,或者,用于针对所述从redis集群进行写操作的缓存队列已满。
8.一种跨机房的redis集群备份数据的装置,其特征在于,应用于从redis集群,所述从redis集群与主redis集群分布在不同机房,所述装置包括:
第一读取模块,用于从kafka队列中读取成功写入所述主redis集群的key-value值中的key值;
第二读取模块,用于根据所述key值,从所述主redis集群中读取成功写入所述主redis集群的key-value值;
备份模块,用于将成功写入所述主redis集群的key-value值备份到本地。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一所述的方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-5任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811347403.8A CN109684406A (zh) | 2018-11-13 | 2018-11-13 | 跨机房的redis集群备份数据的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811347403.8A CN109684406A (zh) | 2018-11-13 | 2018-11-13 | 跨机房的redis集群备份数据的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109684406A true CN109684406A (zh) | 2019-04-26 |
Family
ID=66185769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811347403.8A Pending CN109684406A (zh) | 2018-11-13 | 2018-11-13 | 跨机房的redis集群备份数据的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684406A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362432A (zh) * | 2019-07-23 | 2019-10-22 | 深信服科技股份有限公司 | 一种备份方法、装置、设备及存储介质 |
CN110795503A (zh) * | 2019-10-18 | 2020-02-14 | 北京达佳互联信息技术有限公司 | 分布式存储***的多集群数据同步方法及相关装置 |
CN111190766A (zh) * | 2019-12-12 | 2020-05-22 | 北京淇瑀信息科技有限公司 | 基于HBase数据库的跨机房集群的容灾方法、装置和*** |
CN111880956A (zh) * | 2020-07-24 | 2020-11-03 | 北京达佳互联信息技术有限公司 | 一种数据同步方法和装置 |
CN112235361A (zh) * | 2020-09-28 | 2021-01-15 | 青海绿能数据有限公司 | 一种光伏电站数据转接平台 |
CN113051108A (zh) * | 2021-03-26 | 2021-06-29 | 北京明略昭辉科技有限公司 | 一种数据备份方法及*** |
CN113434515A (zh) * | 2021-07-23 | 2021-09-24 | 深圳智多豚物联技术有限公司 | 基于持久化redis存储服务的分布式高速存储*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437598B2 (en) * | 2004-12-23 | 2008-10-14 | Xiv Ltd. | System, method and circuit for mirroring data |
CN104202375A (zh) * | 2014-08-22 | 2014-12-10 | 广州华多网络科技有限公司 | 同步数据的方法及*** |
CN108055343A (zh) * | 2017-12-26 | 2018-05-18 | 北京奇虎科技有限公司 | 用于机房的数据同步方法及装置 |
CN108228397A (zh) * | 2016-12-22 | 2018-06-29 | 深圳市优朋普乐传媒发展有限公司 | 一种集群间跨机房同步的方法和装置 |
CN108347476A (zh) * | 2018-01-22 | 2018-07-31 | 广东欧珀移动通信有限公司 | 跨机房数据同步方法、装置以及服务器 |
-
2018
- 2018-11-13 CN CN201811347403.8A patent/CN109684406A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437598B2 (en) * | 2004-12-23 | 2008-10-14 | Xiv Ltd. | System, method and circuit for mirroring data |
CN104202375A (zh) * | 2014-08-22 | 2014-12-10 | 广州华多网络科技有限公司 | 同步数据的方法及*** |
CN108228397A (zh) * | 2016-12-22 | 2018-06-29 | 深圳市优朋普乐传媒发展有限公司 | 一种集群间跨机房同步的方法和装置 |
CN108055343A (zh) * | 2017-12-26 | 2018-05-18 | 北京奇虎科技有限公司 | 用于机房的数据同步方法及装置 |
CN108347476A (zh) * | 2018-01-22 | 2018-07-31 | 广东欧珀移动通信有限公司 | 跨机房数据同步方法、装置以及服务器 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362432A (zh) * | 2019-07-23 | 2019-10-22 | 深信服科技股份有限公司 | 一种备份方法、装置、设备及存储介质 |
CN110362432B (zh) * | 2019-07-23 | 2023-12-29 | 深信服科技股份有限公司 | 一种备份方法、装置、设备及存储介质 |
CN110795503A (zh) * | 2019-10-18 | 2020-02-14 | 北京达佳互联信息技术有限公司 | 分布式存储***的多集群数据同步方法及相关装置 |
CN111190766A (zh) * | 2019-12-12 | 2020-05-22 | 北京淇瑀信息科技有限公司 | 基于HBase数据库的跨机房集群的容灾方法、装置和*** |
CN111880956A (zh) * | 2020-07-24 | 2020-11-03 | 北京达佳互联信息技术有限公司 | 一种数据同步方法和装置 |
CN111880956B (zh) * | 2020-07-24 | 2023-12-05 | 北京达佳互联信息技术有限公司 | 一种数据同步方法和装置 |
CN112235361A (zh) * | 2020-09-28 | 2021-01-15 | 青海绿能数据有限公司 | 一种光伏电站数据转接平台 |
CN113051108A (zh) * | 2021-03-26 | 2021-06-29 | 北京明略昭辉科技有限公司 | 一种数据备份方法及*** |
CN113434515A (zh) * | 2021-07-23 | 2021-09-24 | 深圳智多豚物联技术有限公司 | 基于持久化redis存储服务的分布式高速存储*** |
CN113434515B (zh) * | 2021-07-23 | 2022-10-14 | 深圳智多豚物联技术有限公司 | 基于持久化redis存储服务的分布式高速存储*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684406A (zh) | 跨机房的redis集群备份数据的方法、装置、设备及存储介质 | |
WO2020192311A1 (zh) | 主从服务器切换方法、装置、电子设备及存储介质 | |
US9900422B2 (en) | Mobile terminal and method of controlling therefor | |
EP2306290B1 (en) | Mobile terminal and method of controlling application execution in a mobile terminal | |
KR101759451B1 (ko) | 펌웨어 복원 방법, 장치, 단말기, 프로그램 및 기록매체 | |
EP2549717B1 (en) | Mobile terminal and controlling method thereof | |
US8798684B2 (en) | Mobile terminal and controlling method thereof | |
US10042596B2 (en) | Electronic device and method for controlling the same | |
CN107357704B (zh) | 一种应用程序检测方法、终端及计算机可读存储介质 | |
CN106126685B (zh) | 页面加载方法及装置 | |
KR101635030B1 (ko) | 데이터 동기화 방법 및 이를 이용하는 이동 단말기 | |
CN108702414A (zh) | 一种屏幕锁定方法及装置 | |
KR20170084558A (ko) | 전자 장치 및 그의 동작 방법 | |
EP2530575A1 (en) | Mobile terminal and controlling method thereof | |
CN108702412A (zh) | 一种显示方法及装置 | |
CN111597797A (zh) | 社交圈消息的编辑方法、装置、设备及介质 | |
CN109684123B (zh) | 问题资源定位方法、装置、终端及存储介质 | |
WO2023116505A1 (zh) | 用于前后台分离***的模块处理方法、装置及存储介质 | |
CN109586951A (zh) | 实施故障转移的方法、装置、电子设备及可读存储介质 | |
CN110457192A (zh) | 一种文件监控方法及装置、终端、存储介质 | |
CN111290882B (zh) | 数据文件备份方法、数据文件备份装置及电子设备 | |
CN106502809B (zh) | 一种多平台应用程序适配方法、装置及终端设备 | |
KR20120070048A (ko) | 이동 단말기 및 태스크 관리 방법 | |
CN106598811B (zh) | 异常事件处理方法、装置及终端 | |
CN115297144B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |