《云计算》-redis数据库:使用RDB文件恢复数据

RDB优点:

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

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

RDB的缺点:

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

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

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

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

备份数据

[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,之后删除

  
  
  • 1
  • 2
  • 3
  • 4
  • 5

删除数据

[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>

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

恢复数据

[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>

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹汇川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值