CN112241339A - 一种基于网络的Redis持久化方法 - Google Patents
一种基于网络的Redis持久化方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000002688 persistence Effects 0.000 title claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims abstract description 7
- 230000002085 persistent effect Effects 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/1448—Management of the data involved in backup or backup restore
-
- 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
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, 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集群有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数据库中即可。
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)
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 | 电子科技大学 | 一种实现内存数据库持久化的方法 |
-
2020
- 2020-10-23 CN CN202011144781.3A patent/CN112241339A/zh active Pending
Patent Citations (5)
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)
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 |