redis还原数据库mysql_Redis 数据备份还原与主从复制

Redis作为一个内存数据库,在数据安全以及集群部署方面都提供了一系列工具可供使用。

一. Redis数据库数据备份与恢复

Redis是内存型数据库,但是为了数据安全,就需要有“数据持久化“(就是将数据存储在磁盘上)的机制,在备份方面提供了两种工具,分别为RDB和AOF。

1.RDB备份与恢复

RDB是利用快照来实现数据持久化的,当符合特定条件时,redis将会自动的将内存中的数据保存在硬盘上,当redis启动时,会自动的将磁盘上的数据加载到内存中以实现数据环境的恢复。

(1)Redis条件进行RDB备份,步骤如下:

A.修改配置文件redis.conf:

save 900 1 # 900秒内有至少1个键被更改则进行快照

save 300 10 # 300秒内有至少10个键被更改则进行快照

save 60 10000 # 60秒内有至少10000个键被更改则进行快照

dir path #path为redis运行环境时操作的路径

dbfilename rdbname #rdb数据备份文件名(如dump.rdb)1

2

3

4

5

6

B.重启Redis

注:这种方式的实现是Redis的主线程在条件触发后,fork子进程后,在子进程中完成数据持久化的。

(2)Redis强制进行RDB备份,步骤如下:

在redis-cli中,使用如下命令:

redis-cli>SAVE #在主进程强制阻塞进行快照备份

或者

redis-cli>BGSAVE #主进程fork子进程进行快照备份1

2

3

2.AOF备份与恢复

AOF(append only file)就是通过“将redis执行的每一条指令存储在磁盘文件中“ 以实现数据持久化。

(1)开启AOF功能

默认情况下,Redis是不开启AOF的,要想使用该功能,则在redis.conf中配置:

appendonly yes1

AOF文件存放的位置和RDB相同,可以这样设置AOF文件:

dir path #文件存储路径

appendfilename appendonly.aof #aof文件拓展名为aof1

2

AOF的重写配置:

auto-aof-rewrite-percentage 100 # 当目前的AOF文件大小超过上一次重写时的AOF文件大小的百分之多少时会再次进行重写,如果之前没有重写过,则以启动时的AOF文件大小为依据

auto-aof-rewrite-min-size 64mb # 允许重写的最小AOF文件大小1

2

注意:“重写”并不是对原有aof文件进行重新写入或其它操作,而是对原有指令进行简化,如曾经对list进行三个push:

lpush li_key 1

lpush li_key 2

lpush li_key 31

2

3

然后重写的结果就是:

lpush li_key 1 2 31

同理,对HASH table、SET、SORTED SET也是同样的处理方式。

通过重写,就实现了aof文件的压缩;

当然,细心的朋友会发现一个问题,对AOF重写时会影响redis的请求访问的,那么redis是怎么解决的呢?

A. Redis通过fork子进程来完成重写;

B. 重写时在内存中先创建AOF缓存,在重写的同时,将新指令同时写入旧的AOF文件中和AOF缓存中;

C. 重写完成后,将AOF缓存的内容写入磁盘,替换旧的AOF文件

(2)主动强制进行AOF备份

redis-cli> BGREWRITEAOF1

二.数据迁移和主从复制

1.直接备份文件数据迁移

Redis的数据迁移比较简单,步骤如下:

(1)关闭目标Redis服务;

(2)将相应的RDB文件或者AOF文件复制过去;

(3)设置REDIS的DIR或者开启AOF功能;

(4)启动目标REDIS服务;

2.主从复制

主服务器配置redis.conf:

bind 127.0.0.1 192.168.1.158 #后面的IP地址为从服务器能访问的主机的ip1

从服务器配置redis.conf:

slaveof #masterip为192.168.1.158 masterport默认是63791

启动主服务器和从服务器

另外:利用主从复制还能够实现数据迁移,将目标redis服务设置成从服务,然后进行数据同步,完成后,就取消主从关系,就完成了数据迁移了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值