使用RDB文件恢复数据
步骤一:使用RDB文件恢复数据
RDB介绍:
Redis数据库文件,全称Reids DataBase
数据持久化方式之一
在指定时间间隔内,将内存中的数据集快照写入硬盘
术语叫Snapshot快照
恢复时,将快照文件直接读到内存里
相关配置参数
文件名 dbfilename “dump.rdb” 文件名
数据从内存保存到硬盘的频率
save 900 1 900秒内且有1个key改变
save 300 10 300秒内且有10个key改变
save 60 10000 60秒内且有10000个key改变
[root@redisA ~]# vim /etc/redis/6379.conf
dbfilename dump.rdb
save 900 1
#save 300 10 //注释原有设置
save 120 10 //时间修改为 120秒
save 60 10000
:wq
[root@redisA ~]# /etc/init.d/redis_6379 stop //停止服务
[root@redisA ~]# rm –rf /var/lib/redis/6379/* //清空数据库目录
[root@redisA ~]# /etc/init.d/redis_6379 start //启动服务
[root@redisA ~]# ls /var/lib/redis/6379 //此时,查看数据库目录下没有dump.rdb文件
[root@redisA ~]#
[root@redisA ~]# redis-cli -h 192.168.4.51 -p 6351 -a 123456 //连接服务,在200秒内存储10个变量,就会自动在数据库目录下创建dump.rdb 文件
192.168.4.51:6351> set v1 k1
OK
...
192.168.4.51:6351> set v10 k1
OK
192.168.4.51:6351> keys *
1) "v2"
...
10) "v3"
192.168.4.51:6351>exit
[root@redisA ~]# ls /var/lib/redis/6379 //此时(120秒后),查看数据库目录下有dump.rdb文件
dump.rdb
备份数据
[root@redisA ~]# cd /var/lib/redis/6379/
[root@redisA 6379]# ls
dump.rdb
[root@redisA 6379]# cp dump.rdb /tmp/dump.rdb //备份dump.rdb文件
[root@redisA 6379]# scp /tmp/dump.rdb root@192.168.4.56:/root/ //传递备份文件给目标主机
删除数据 (56主机模拟误删除数据)
[root@redis56 ~]# redis-cli -h 192.168.4.56 –p 6356 //连接服务
192.168.4.56:6356> flushall
OK
192.168.4.51:6379> keys * //已经没有数据
(empty list or set)
192.168.4.56:6356> exit
[root@redis56 ~]#
恢复数据(56主机使用备份文件恢复数据)
[root@redis56 ~]# /etc/init.d/redis_6379 stop //停止服务
[root@redis56 ~]# rm -rf /var/lib/redis/6379/* //清空数据库目录
[root@redis56 ~]# cp /tmp/dump.rdb /var/lib/redis/6379/ //拷贝备份文件到数据库目录下
[root@redis56 ~]# /etc/init.d/redis_6379 start // 启动服务
[root@redis56 ~]# redis-cli -h 192.168.4.56 –p 6356 //访问服务
192.168.4.56:6356> keys * //查看数据
1) "v7"
...
10) "v10"
使用AOF文件恢复数据
步骤一:使用AOF文件恢复数据
1)修改配置文件
[root@redisA ~]# redis-cli -h 192.168.4.51 –p 6351 -a 123456 //连接服务
192.168.4.51:6351>config set appendonly yes //启用aof,默认no
192.168.4.51:6351> config rewrite //写进配置文件
192.168.4.51:6351> save
192.168.4.51:6351> exit
[root@redisA ~]# ls /var/lib/redis/6379/ //会出现appendonly.aof文件
appendonly.aof dump.rdb
2)备份AOF文件
[root@redisA ~]# cd /var/lib/redis/6379/
[root@redisA 6379]# cp appendonly.aof /tmp/appendonly.aof
[root@redisA 6379]# scp /tmp/appendonly.aof root@192.168.4.57:/root/ //传递备份文件给目标主机
3)删除数据(在57主机 默认数据误删除)
[root@redis57 ~]# redis-cli -h 192.168.4.57 -p 6357 //连接服务
192.168.4.57:6357> flushall //清除数据
OK
192.168.4.57:6357> keys * //查看数据
(empty list or set)
192.168.4.57:6357> exit
4) 使用AOF文件恢复数据
[root@redis57 ~]# vim +673 /etc/redis/6379.conf
appendonly yes //启用AOF
:wq
[root@redis57 ~]# /etc/init.d/redis_6379 stop //停止服务
[root@redis57 ~]# rm -rf /var/lib/redis/6379/* //删除没有数据的文件
[root@redis57 ~]# cp /root/appendolny.aof /var/lib/redis/6379/ //拷贝文件
[root@redis57 ~]# /etc/init.d/redis_6379 start //启动服务
[root@redis57 ~]# redis-cli -h 192.168.4.57 -p 6357 //连接服务
192.168.4.57:6357> keys * //查看数据
1) "v9"
2) "v5"
3) "v8"
4) "v2"
5) "v1"
6) "v4"
7) "v10"
8) "v6"
9) "v7"
10) "v3"