CN112241339A - 一种基于网络的Redis持久化方法 - Google Patents

一种基于网络的Redis持久化方法 Download PDF

Info

Publication number
CN112241339A
CN112241339A CN202011144781.3A CN202011144781A CN112241339A CN 112241339 A CN112241339 A CN 112241339A CN 202011144781 A CN202011144781 A CN 202011144781A CN 112241339 A CN112241339 A CN 112241339A
Authority
CN
China
Prior art keywords
redis
backup
network
cluster
mode
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
Application number
CN202011144781.3A
Other languages
English (en)
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202011144781.3A priority Critical patent/CN112241339A/zh
Publication of CN112241339A publication Critical patent/CN112241339A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明特别涉及一种基于网络的Redis持久化方法。该基于网络的Redis持久化方法,在Redis所在宿主机上配置需要备份的Redis基本信息和目的对象存储的对应信息,Redis的备份文件不再直接在本地生成备份文件,通过流传输的方式进行持久化操作。该基于网络的Redis持久化方法,基于网络,直接将备份文件通过流传输方式传入目的对象存储中,有效解决了备份文件占用本地内存的问题,不需要造成本地资源浪费,留出更多资源给Redis数据,而且采用本地数据与备份文件物理分离,大幅度提高了容灾性。

Description

一种基于网络的Redis持久化方法
技术领域
本发明涉及云计算与数据库技术领域,特别涉及一种基于网络的Redis持久化方法。
背景技术
Redis作为一种非关系型内存数据库,具有性能高、数据类型丰富、数据持久化等特点,被广泛的用于各个互联网工程中。
随着Redis技术的逐步兴起与大规模使用,特别是Redis集群的飞速发展,无论单机版Redis、官方提供的Redis集群还是其他Redis集群,都会产生大量的数据,而大量数据的产生是前进的动力,更是无可比拟的价值。而数据传输中,会产生一些列数据安全问题,其中数据丢失是最需要避免的。
为了避免不必要的损失,数据备份的地位显而易见,且存储容量是一个极为关键的因素。Redis服务产生的数据量庞大繁多,如何选择备份的方式和硬件也是必不可少的问题。并且随着近年来云计算概念的兴起,Redis逐渐被迁移到云计算平台,成为云数据库,那么如何处理云上数据的备份也变得尤为重要。
然而官方的方案在备份方式方面还存在一些显著的问题,官方Redis集群有AOF与RDB两种不同备份方式,但是生成的备份文件都是生成在本地指定的路径下,在大规模集群与大量数据的压力下,本地硬盘容量也很难容纳占用存储大小与Redis集群成正相关的备份文件,甚至占满资源根据备份策略丢失数据,而且这种方式的物理容灾性基本为零,在大规模集群与大量数据的压力下,备份方案有以下缺陷:
(1)备份文件大小与节点数据大小正相关,备份文件在本地硬盘白占用多一倍硬盘;
(2)由于备份文件与原始数据在同一虚机或服务器,所以容灾性基本为零。
如何解决这些问题成为了为用户提供更具有灵活存储和提高容灾性的一个难题。基于此,本发明提出了一种基于网络的Redis持久化方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于网络的Redis持久化方法。
本发明是通过如下技术方案实现的:
一种基于网络的Redis持久化方法,其特征在于:在Redis所在宿主机上配置需要备份的Redis基本信息和目的对象存储的对应信息,Redis的备份文件不再直接在本地生成备份文件,通过流传输的方式进行持久化操作。
包括以下过程:
(1)、以备份程序为程序中心,在配置文件中写入需要的配置,中心程序去配置文件中读取配置,并在取到配置后直接连接Redis服务,对Redis客户端发送sync命令进行备份请求;
(2)、对于对象存储,准备好对象存储的endpoint、access key、secret key、存储桶名称以及自定义标志信息;
(3)、在RDB文件传输回来时,直接将文件转换成数据流,组装S3请求头后请求S3对象存储,进行云备份落盘。
所述步骤(1)中,在配置文件中写入的需要的配置包括源Redis的模式,Redis ip,Redis端口与Redis密码,其中Redis的模式为单机或集群。
当Redis的模式为集群时,不需要对所以节点逐个进行操作,只需要写入其中一个节点的信息,在其中一个节点进行操作,将type配置为集群模式,即可交由备份程序对整个集群进行完成云备份,从而完成Redis集群备份。
当Redis的模式为集群时,集群每个节点负责一部分哈希槽;为了避免数据错位,备份文件名称根据哈希槽进行命名。
所述哈希槽总数为16384个。
当Redis的模式为单机时,先利用S3相关配置去请求S3对象存储进行备份文件的下载,然后在备份程序接受的同时请求Redis服务,连接Redis客户端后即可把文件直接还原至Redis数据库中。
当Redis的模式为集群时,先利用S3相关配置去请求S3对象存储进行备份文件的下载,同时请求Redis服务,连接Redis客户端后,按照哈希槽对应还原至Redis数据库中即可。
本发明的有益效果是:该基于网络的Redis持久化方法,基于网络,直接将备份文件通过流传输方式传入目的对象存储中,有效解决了备份文件占用本地内存的问题,不需要造成本地资源浪费,留出更多资源给Redis数据,而且采用本地数据与备份文件物理分离,大幅度提高了容灾性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为备份程序备份原理示意图。
附图2为本发明备份程序备份单机版Redis至对象存储原理示意图。
附图3为本发明备份程序备份Redis集群至对象存储原理示意图。
附图4为本发明备份程序还原Redis备份文件至单机版Redis数据库原理示意图。
附图5为本发明备份程序还原Redis备份文件至集群版Redis数据库原理示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
已有备份程序可以对单节点Redis与Redis集群进行主动备份,其备份原理为:备份程序模拟一个从节点加入源Redis(集群),进行拉取并接收RDB,分析RDB文件在指定路径下生成备份文件,如附图1所示。
该基于网络的Redis持久化方法,在Redis所在宿主机上配置需要备份的Redis基本信息和目的对象存储的对应信息,Redis的备份文件不再直接在本地生成备份文件,通过流传输的方式进行持久化操作。
包括以下过程:
(1)、以备份程序为程序中心,在配置文件中写入需要的配置,中心程序去配置文件中读取配置,并在取到配置后直接连接Redis服务,对Redis客户端发送sync命令进行备份请求;
(2)、对于对象存储,准备好对象存储的endpoint、access key、secret key、存储桶名称以及自定义标志信息;
(3)、在RDB文件传输回来时,直接将文件转换成数据流,组装S3请求头后请求S3对象存储,进行云备份落盘。
所述步骤(1)中,在配置文件中写入的需要的配置包括源Redis的模式,Redis ip,Redis端口与Redis密码,其中Redis的模式为单机或集群。
所述步骤(2)中,自定义标志信息位集群的主键信息。
所述步骤(3)中,Redis的备份文件不再直接在本地生成备份文件,因此备份文件不再占用本地存储,而是直接通过流方式利用网络传输至S3对象存储,不仅更为方便,更主要的是提高了运行和存储分离,提高了安全性和容灾性。具体原理如附图2所示。
其中,S3(Simple Storage Service)对象存储,即为简单存储服务。
当Redis的模式为集群时,不需要对所以节点逐个进行操作,只需要写入其中一个节点的信息,在其中一个节点进行操作,将type配置为集群模式,即可交由备份程序对整个集群进行完成云备份,从而完成Redis集群备份。具体原理如附图3所示。
当Redis的模式为集群时,集群每个节点负责一部分哈希槽;为了避免数据错位,备份文件名称根据哈希槽进行命名。
所述哈希槽总数为16384个。
当Redis的模式为单机时,先利用S3相关配置去请求S3对象存储进行备份文件的下载,然后在备份程序接受的同时请求Redis服务,连接Redis客户端后即可把文件直接还原至Redis数据库中。具体原理如附图4所示。
当Redis的模式为集群时,先利用S3相关配置去请求S3对象存储进行备份文件的下载,同时请求Redis服务,连接Redis客户端后,按照哈希槽对应还原至Redis数据库中即可。具体原理如附图5所示。
该基于网络的Redis持久化方法,具有以下特点:
第一、用于实现Redis单机版或集群版的备份功能,无论是本地Reids服务抑或云Redis。
第二、将传统的基于本地存储的本地备份方式改为通过基于网络的流传输方式传入目的对象存储中,在此过程中,本地不消耗任何多余存储占用,节省了不必要的存储浪费。
第三、解决了传统备份方式占用本地存储的弊端,能够避免在资源不足的情况下影响Redis数据库性能。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (8)

1.一种基于网络的Redis持久化方法,其特征在于:在Redis所在宿主机上配置需要备份的Redis基本信息和目的对象存储的对应信息,Redis的备份文件不再直接在本地生成备份文件,通过流传输的方式进行持久化操作。
2.根据权利要求1所述的基于网络的Redis持久化方法,其特征在于:包括以下过程:
(1)、以备份程序为程序中心,在配置文件中写入需要的配置,中心程序去配置文件中读取配置,并在取到配置后直接连接Redis服务,对Redis客户端发送sync命令进行备份请求;
(2)、对于对象存储,准备好对象存储的endpoint、access key、secret key、存储桶名称以及自定义标志信息;
(3)、在RDB文件传输回来时,直接将文件转换成数据流,组装S3请求头后请求S3对象存储,进行云备份落盘。
3.根据权利要求2所述的基于网络的Redis持久化方法,其特征在于:所述步骤(1)中,在配置文件中写入的需要的配置包括源Redis的模式,Redis ip,Redis端口与Redis密码,其中Redis的模式为单机或集群。
4.根据权利要求2所述的基于网络的Redis持久化方法,其特征在于:当Redis的模式为集群时,不需要对所以节点逐个进行操作,只需要写入其中一个节点的信息,在其中一个节点进行操作,将type配置为集群模式,即可交由备份程序对整个集群进行完成云备份,从而完成Redis集群备份。
5.根据权利要求4所述的基于网络的Redis持久化方法,其特征在于:当Redis的模式为集群时,集群每个节点负责一部分哈希槽;为了避免数据错位,备份文件名称根据哈希槽进行命名。
6.根据权利要求5所述的基于网络的Redis持久化方法,其特征在于:所述哈希槽总数为16384个。
7.根据权利要求2所述的基于网络的Redis持久化方法,其特征在于:当Redis的模式为单机时,先利用S3相关配置去请求S3对象存储进行备份文件的下载,然后在备份程序接受的同时请求Redis服务,连接Redis客户端后即可把文件直接还原至Redis数据库中。
8.根据权利要求4或5所述的基于网络的Redis持久化方法,其特征在于:当Redis的模式为集群时,先利用S3相关配置去请求S3对象存储进行备份文件的下载,同时请求Redis服务,连接Redis客户端后,按照哈希槽对应还原至Redis数据库中即可。
CN202011144781.3A 2020-10-23 2020-10-23 一种基于网络的Redis持久化方法 Pending CN112241339A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011144781.3A CN112241339A (zh) 2020-10-23 2020-10-23 一种基于网络的Redis持久化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011144781.3A CN112241339A (zh) 2020-10-23 2020-10-23 一种基于网络的Redis持久化方法

Publications (1)

Publication Number Publication Date
CN112241339A true CN112241339A (zh) 2021-01-19

Family

ID=74169573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011144781.3A Pending CN112241339A (zh) 2020-10-23 2020-10-23 一种基于网络的Redis持久化方法

Country Status (1)

Country Link
CN (1) CN112241339A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170168936A1 (en) * 2015-12-11 2017-06-15 Netapp, Inc. Server-based persistence management in user space
CN107070976A (zh) * 2017-01-13 2017-08-18 广西电网有限责任公司电力科学研究院 一种数据传输方法
CN107818111A (zh) * 2016-09-13 2018-03-20 腾讯科技(深圳)有限公司 一种缓存文件数据的方法、服务器及终端
CN110109781A (zh) * 2019-07-02 2019-08-09 南京云信达科技有限公司 一种用于s3云服务的数据备份方法
CN111538463A (zh) * 2020-04-30 2020-08-14 电子科技大学 一种实现内存数据库持久化的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170168936A1 (en) * 2015-12-11 2017-06-15 Netapp, Inc. Server-based persistence management in user space
CN107818111A (zh) * 2016-09-13 2018-03-20 腾讯科技(深圳)有限公司 一种缓存文件数据的方法、服务器及终端
CN107070976A (zh) * 2017-01-13 2017-08-18 广西电网有限责任公司电力科学研究院 一种数据传输方法
CN110109781A (zh) * 2019-07-02 2019-08-09 南京云信达科技有限公司 一种用于s3云服务的数据备份方法
CN111538463A (zh) * 2020-04-30 2020-08-14 电子科技大学 一种实现内存数据库持久化的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JAVA知音: "Redis企业级数据备份与恢复方案", 《微信公众号》 *

Similar Documents

Publication Publication Date Title
US11153380B2 (en) Continuous backup of data in a distributed data store
US11797489B2 (en) System and method for using local storage to emulate centralized storage
US10545823B2 (en) Accelerating erasure code replication in distributed systems
Lakshman et al. Cassandra: a decentralized structured storage system
US8938604B2 (en) Data backup using distributed hash tables
US10503840B2 (en) System and methods for multi-user CAx editing data consistency
US11321291B2 (en) Persistent version control for data transfer between heterogeneous data stores
JP2011516994A (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
CN109522283B (zh) 一种重复数据删除方法及系统
US8438130B2 (en) Method and system for replicating data
CN111984370B (zh) 一种多磁盘虚拟机在线迁移到不同存储池的方法及装置
CN105677251A (zh) 基于Redis集群的存储系统
US10719554B1 (en) Selective maintenance of a spatial index
CN114564339A (zh) 一种磁盘镜像文件跨平台迁移方法及系统
CN113032356B (zh) 一种客舱分布式文件存储系统及实现方法
EP3349416B1 (en) Relationship chain processing method and system, and storage medium
CN112328697A (zh) 一种基于大数据的数据同步方法
CN112241339A (zh) 一种基于网络的Redis持久化方法
CN116303789A (zh) 多分片多副本数据库并行同步方法、装置及可读介质
US20180316756A1 (en) Cross-platform replication of logical units
US11709957B2 (en) Methods for securing files within a storage device using artificial intelligence and devices thereof
US11074002B2 (en) Object storage system with meta object replication
US11093465B2 (en) Object storage system with versioned meta objects
CN112965859A (zh) 一种基于ipfs集群的数据灾备方法与设备
CN113965582A (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: 20210119