redis:aof恢复与rdb服务器间迁移

1. aof恢复与rdb服务器间迁移:

1.1. Aof恢复:

如果不小心执行了flushdbflushall了怎么办?

1)立马执行命令:shutdown nosave

关闭服务器,为了防止其他人正在操作服务器触发重写aof,如果aof重写了,彻底没救了

2)修改aof文件,删除最后一行的命令:flushdb (或flushall

3)再次启动服务器,查看数据恢复

操作流程如下:

127.0.0.1:6379> set hello word

OK

127.0.0.1:6379> flushdb    #flushdbflushall危险命令

OK

127.0.0.1:6379> get hello

(nil)

127.0.0.1:6379> shutdown nosave   #关闭服务端

[root@192 rdb]# vi appendonly6379.aof    #修改aof文件

删除最后一行的:flushdb

127.0.0.1:6379> get hello    #查看恢复的数据

"word"

 

1.2. Rdb迁移:(导入rdb文件)

注:一台服务器的rdb文件导入到另一台服务器

1)关闭redis服务:

[root@192 redis]# pkill -9 redis

2)拷贝rdb文件

[root@192 redis]# cp redis.conf redis6383.conf   #拷贝配置文件

3)修改redis6383的配置文件,修改内容如下:

#appendonly yes    #关闭aof

#port 6379

port 6383

save 900 1    #打开rdb

save 300 10

save 60 10000

#dir ./

dir /var/rdb        #

#dbfilename dump.rdb

dbfilename dump6383.rdb

4)启动redis服务端、客户端

#启动redis服务

[root@192 redis]# ./bin/redis-server ./redis6383.conf

#启动客户端

[root@192 redis]# ./bin/redis-cli -p 6383

127.0.0.1:6383> keys *   #没有数据

(empty list or set)

5)关闭redis服务

6)产生最新的rdb文件

启动redis-6379的服务后,客户端执行命令:bgsave  

7)拷贝rdb文件:

[root@192 rdb]# cp dump6379.rdb dump6383.rdb  

8)启动redis服务端、客户端,查看数据:

[root@192 redis]# ./bin/redis-server ./redis6383.conf

[root@192 redis]# ./bin/redis-cli -p 6383

127.0.0.1:6383> keys *

1) "a"

2) "xx"

原文地址:https://www.cnblogs.com/reyinever/p/10041339.html