本地redis的rdb文件上传到阿里云redis,阿里云redis的上传和备份

本文详细介绍了如何将本地的Redis.rdb文件上传至阿里云Redis服务,包括必要的网络配置、权限设置及使用特定工具进行数据迁移的具体步骤。文中还提供了下载备份文件和上传.rdb文件到阿里云Redis的详细教程。
本地 redis .rdb 文件上传到 阿里云 redis:
	为这个问题,纠结了好久。之前还搜索了好多文章,还看的 唯品会的 redis 迁移工具。
	其实阿里云文档,这些都有,我们需要耐下心来,好好研究,之前就是太浮躁了,瞎看,一看有点复杂,就不想看。

参考文档:
	云数据库 Redis 版
		1.公网链接 - https://help.aliyun.com/document_detail/43850.html
			注意:我们从本地 PC 访问 阿里云的 Redis 数据库,默认是拒绝的,需要一些配置。需要仔细了解 『前提条件』。

			前提条件:
			『
				若 Redis 实例属于专有网络(VPC),ECS 必须与 Redis 实例属于同一个 VPC。
				若 Redis 实例属于经典网络,ECS 必须与 Redis 实例属于同一节点(地域)。
				若 Redis 实例开启了 IP 白名单,必须将 ECS 的内网地址加入白名单列表内。
			』
			我们项目的 Redis 实例,是属于 "经典网络",在其他地域的 ESC 上尝试了半天,确实访问不了。

			Redis 实例,只支持 ECS 访问,要想在公网上访问,文档也给出了途径:
				『可以通过在 ECS 上配置端口映射或者端口转发实现』

			好像是需要安装一个 rinetd 服务。

		2.使用 redis-port 恢复数据 - https://help.aliyun.com/document_detail/90931.html
			这篇文档,讲述的有2点:
				1>从阿里云 redis 上,下载备份文件(阿里云redis,会根据我们的设置自动备份,我们就是下载这些已备份的文件)
				2>将本地的 redis 文件,恢复到 阿里云redis
					这个是我们需要的功能,但是并没有在这个文档提到,参考下面链接:
						https://help.aliyun.com/document_detail/66012.html

			1>下载 redis 备份
				1)安装 openAPI
					pip install aliyun-python-sdk-core #安装阿里云OpenAPI依赖包

					// 这个需要安装 pip,自行搜索

				2)下载工具包
					wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/73964/cn_zh/1536832169445/redis-rdb-auto-restore.zip

				3)解压zip包,编辑 config.json 配置文件,配置我们的 阿里云的 AccesskeyID, AccesskeySecret,regionid。
					unzip redis-rdb-auto-restore.zip
					vim config.json
						{
							AccesskeyID: 'xxx',
							AccesskeySecret: 'xxx',
							regionid: 'cn-beijing',
						}

				4)执行脚本
					python rdb_restore.py -c xxx -t xxx -p 6379 -a xxx -d 2018-09-20

					注意:
						如果一天之内有多个备份文件的话,务必加上 -b 参数,如需传入多个备份id请用逗号隔开,如:xxx,xxx,xxx

				5)参数说明:
					-c - 云数据库 redis 实例ID(--inistance_id)
					-t - 云数据库 redis 域名(--target)
					-p - 云数据库 redis 端口(--port)
					-a - 云数据库 redis 密码(--auth)
					-d - 备份的日期(--day)
					-o - 备份到本地的路径以及文件名,默认路径是 '/root/'(--output)
					-b - 具体的实例备份id,选填,对于一天有多个备份的时候选择具体备份,如果需要传入多个备份的话请用逗号隔开,如:xxx,xxxx,xxxx(--backup)
					更多命令参考:python rdb_restore.py -h


			2>上传本地 .rdb 文件到阿里云 redis 
				1)下载 redis-port
					wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/66008/cn_zh/1526545851725/redis-port

					注意:
						如果已经使用了 '第一步' 里,下载了备份工具包,里面已经有了 'redis-port' 了,我们就不用再次下载了


				2)./redis-port restore --input=/xxx/xxx.rdb --target=xxx:6379 --auth=xxx

					注意:
						1.确保 redis-port 有执行权限。如果没有,执行:chmod o+x redis-port
						2.非常关键!!!
							测试了下 redis-port,并不会删除目前阿里云 redis 中的数据,会将我们本地的 .rdb 文件里的数据新增到里面去,所以我们需要根据自己的需求来操作。
							如果完全使用本地的,阿里云redis不使用,直接点击 阿里云redis里的『清除数据』。

				3)参数说明:
					--input - 本地我们的 rdb 文件
					--target - 云数据库 redis 域名:云数据库 redis 端口
					--auth - 云数据库 redis 密码
					--filterkey - 过滤指定的key。"str1|str2|str3":过滤包含 str1 或 str2 或 str3 的键。
					--targetdb - 将要同步入云数据库 redis 的 DB
					--rewrite - 覆盖已经写入的key
					--bigkeysize - 当写入的 value 大于 SIZE 时,走大 key 写入模式
					更多命令参考:./redis-port -h

	安装 pip
		参照官方安装:
			https://pip.pypa.io/en/stable/installing/

其他参考文章:
	https://www.cnblogs.com/weifeng1463/p/9052045.html

 

<think>好的,我需要帮助用户了解如何将Redis集群的RDBAOF文件备份到指定文件夹。首先,我需要回忆一下Redis的持久化机制,RDBAOF的区别以及它们在集群中的配置方式。 根据引用内容,用户提到他们使用Kubesphere部署了Redis Cluster,所以可能涉及到多个节点不同的配置文件。每个Redis实例需要单独配置RDBAOF的保存路径。比如引用[2]中提到了不同实例的目录结构,每个实例可能有自己的redis.conf文件,里面指定了备份文件的位置。因此,用户需要分别修改每个节点的配置文件,设置dir参数为指定的文件夹路径,这样RDBAOF文件就会生成在那里。 接下来,我需要检查RDBAOF的配置参数。RDB的配置通常由save指令控制,而AOF则由appendonly yes启用。用户需要确保这些配置正确,并且dir路径存在且有写入权限。同时,在集群环境中,每个节点的dir路径应该是独立的,避免冲突。例如,在引用[2]的例子中,每个redis_test目录都有自己的redis.conf,这样每个实例的备份文件会存放在各自的目录下。 另外,用户可能需要考虑备份策略,比如定期执行SAVE或BGSAVE命令,或者配置cron任务来自动备份。不过对于持久化到指定文件夹,主要还是通过dir参数设置。同时,要提醒用户备份完成后可能需要将文件复制到远程存储或另一个服务器,以防止单点故障。 最后,验证步骤也很重要,用户需要检查配置文件是否生效,备份文件是否生成在指定位置,并且测试恢复过程是否可行。可能还需要注意Redis版本差异,比如引用[5]提到RedisMySQL一起使用,所以确保备份不会影响到数据同步。</think>### 如何将Redis集群的RDBAOF文件备份到指定文件夹? #### 1. **理解Redis持久化机制** - **RDB快照)**:通过生成时间点的数据快照实现持久化,默认保存在`dump.rdb`文件中[^3]。 - **AOF(追加日志)**:记录所有写操作命令,默认保存在`appendonly.aof`文件中[^3]。 #### 2. **配置备份路径** Redis通过`dir`参数指定持久化文件的存储路径。在Redis集群中,需为每个节点单独配置: ```bash # 在redis.conf中修改以下参数 dir /your/backup/folder # 指定RDBAOF文件的存储路径 dbfilename dump.rdb # RDB文件名(默认) appendfilename "appendonly.aof" # AOF文件名(默认) appendonly yes # 启用AOF持久化(如需AOF备份) ``` #### 3. **集群环境操作步骤** - **步骤1:为每个节点创建独立备份目录** 例如: ```bash mkdir -p /data/redis/node1_backup mkdir -p /data/redis/node2_backup # ... 其他节点同理 ``` - **步骤2:修改每个节点的配置文件** 参考引用[2]中的多实例配置模式,为每个节点的`redis.conf`设置不同的`dir`路径: ```bash # 节点1配置 dir /data/redis/node1_backup # 节点2配置 dir /data/redis/node2_backup ``` - **步骤3:重启Redis服务使配置生效** 执行命令: ```bash redis-cli -p <port> shutdown save # 安全关闭并保存数据 redis-server /path/to/redis.conf # 重新启动服务 ``` #### 4. **验证备份文件生成** - 检查指定目录是否生成`dump.rdb``appendonly.aof`: ```bash ls /your/backup/folder ``` - 手动触发RDB备份(可选): ```bash redis-cli -p <port> save # 同步保存(阻塞) 或 redis-cli -p <port> bgsave # 异步保存(推荐) ``` #### 5. **自动化备份建议** - **方案1:定时任务同步备份文件** 使用`cron`定期将文件复制到远程存储: ```bash # 示例:每天凌晨3点备份 0 3 * * * cp /your/backup/folder/*.rdb /remote/backup/ ``` - **方案2:结合Kubernetes持久化卷(PVC)** 若使用Kubesphere部署(如引用[1]),可为每个Redis Pod挂载独立的持久化存储卷,确保数据持久化[^1]。 #### 6. **注意事项** - **权限问题**:确保Redis进程对备份目录有读写权限。 - **版本兼容性**:Redis 7.0.4(引用[1])支持混合持久化(RDB+AOF),可通过`aof-use-rdb-preamble yes`启用。 - **集群一致性**:备份时需逐个节点操作,避免数据不一致。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值