RDB优点:

高性能的持久化实现:创建一个子进程来执行持久化,先将数据写入临时文件,持久化过程结束后,再用这个临时文件替换上次持久化好的文件;过程中主进程不做任何IO操作

比较适合大规模数据恢复,且对数据完整性要求不是非常高的场合

RDB的缺点:

意外宕机时,最后一次持久化的数据会丢失

使用RDB文件恢复数据
2.1 问题

要求如下: 启用RDB 设置存盘间隔为120秒 10个key改变存盘 备份RDB文件 删除数据 使用RDB文件恢复数据 

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用RDB文件恢复数据

RDB介绍:

Redis数据库文件,全称Reids DataBase

数据持久化方式之一

在指定时间间隔内,将内存中的数据集快照写入硬盘

术语叫Snapshot快照

恢复时,将快照文件直接读到内存里

相关配置参数

文件名

dbfilename “dump.rdb” 文件名

save “” 禁用RDB

数据从内存保存到硬盘的频率

save 900 1 900秒内且有1次修改

save 300 10 300秒内且有10次修改

save 60 10000 60秒内且有10000修改

[root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456 shutdown [root@redisA ~]# vim /etc/redis/6379.conf dbfilename dump.rdb #   save ""        //启用RDB,去掉#号为禁用RDB save 120 10        //120秒内且有1次修改(满足三个条件中的任意一个都会保存) save 300 10 save 60 10000 [root@redisA ~]# /etc/init.d/redis_6379 start  Starting Redis server... [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456 192.168.4.51:6379> [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456 192.168.4.51:6379>  192.168.4.51:6379> set v1 k1 OK 192.168.4.51:6379> set v2 k1 OK 192.168.4.51:6379> set v3 k1 OK 192.168.4.51:6379> set v4 k1 OK 192.168.4.51:6379> set v45 k1 OK 192.168.4.51:6379> set v46 k1 OK 192.168.4.51:6379> set v7 k1 OK 192.168.4.51:6379> set v8 k1 OK 192.168.4.51:6379> set v9 k1 OK 192.168.4.51:6379> set v10 k1 OK 192.168.4.51:6379> keys *  1) "v2"  2) "v9"  3) "v10"  4) "v45"  5) "v4"  6) "v1"  7) "v46"  8) "v8"  9) "v7" 10) "v3" 192.168.4.51:6379>exit 

备份数据

[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown        //停止服务 [root@redisA ~]# cd /var/lib/redis/6379/ [root@redisA 6379]# ls dump.rdb  nodes-6351.conf [root@redisA 6379]# cp dump.rdb dump.rdb.bak    //备份dump.rdb,之后删除 

删除数据

[root@redisA 6379]# rm -rf dump.rdb [root@redisA 6379]# /etc/init.d/redis_6379  start  Starting Redis server... [root@redisA 6379]# ls dump.rdb  dump.rdb.bak  nodes-6351.conf [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 192.168.4.51:6379> keys *        //已经没有数据 (empty list or set) 192.168.4.51:6379> 

恢复数据

[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown [root@redisA 6379]# mv dump.rdb.bak dump.rdb mv: overwrite ‘dump.rdb’? y [root@redisA 6379]# /etc/init.d/redis_6379  start  Starting Redis server... [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 192.168.4.51:6379> keys *  1) "v7"  2) "v46"  3) "v45"  4) "v8"  5) "v4"  6) "v2"  7) "v1"  8) "v3"  9) "v9" 10) "v10" 192.168.4.51:6379> 
  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论