Linux:Redis数据备份和恢复

Redis数据备份和恢复

1.备份

可以使用SAVE或者BGSAVE命令
SAVE用于创建数据库的备份。(阻塞主进程)
BGSAVE用于在后台创建数据库的备份。(fock了一个专门save的子进程,不会影响主进程

127.0.0.1:6379> SAVE 
OK
127.0.0.1:6379> BGSAVE
Background saving started

2.数据恢复

想要恢复数据的话,需要将备份文件(dump.rdb)移动到redis安装目录并启动服务即可。
获取redis目录可以使用config命令:

127.0.0.1:6379> config get dir
1) "dir"
2) "/data/redis_data”

# 找到目录后,进行查看
[root /]# cd data/redis_data/
[root redis_data]# ll
total 8
-rw-r--r-- 1 root root 709 Jul 15 12:00 appendonly.aof
-rw-r--r-- 1 root root 709 Jul 15 09:03 dump.rdb

备份的RDB文件: 通过命令127.0.0.1:6379> CONFIG GET dir查看执行SAVE命令之后,redis默认存放备份文件的目录;通过命令127.0.0.1:6379> CONFIG GET dbfilename查看备份RDB文件的文件名称.
指定目录: 通过命令redis 127.0.0.1:6379> CONFIG GET dir,得出redis从哪个目录读取备份文件(一般只要直接重启Redis就能恢复数据,因为备份的默认目录和启动读取的目录是同一个)

Ps:学习的过程中遇到一些坑,查了好久才知道为什么
我的操作步骤:

  1. set一些数据
  2. 执行save命令
  3. del一些key
  4. 重启,发现数据没有恢复

这是因为Redis有自动备份。可以通过config get save进行查看。

127.0.0.1:6379> config get save
1) "save"
2) "3600 1 300 100 60 10000"
# save 900 1 代表900秒内有1个key发生改变就触发save
# save 300 10 代表300秒内有10个key发生改变就触发save
# save 60 10000 代表300秒内有10个key发生改变就触发save

我在执行第三步操作时,改变了1个以上的key的值,并且这个时间正好是Redis自动备份900秒的最后一秒,所以此时Redis又自动备份了一次,dump.rdb覆盖了旧的rdb文件,还原回去,就是del之后的数据了。想要自己备份的话就要关闭自动备份的功能。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值