redis:aof恢复与rdb服务器间迁移
1. aof恢复与rdb服务器间迁移:
1.1. Aof恢复:
如果不小心执行了flushdb或flushall了怎么办?
(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 #flushdb、flushall危险命令
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"