redis-数据备份、恢复与持久化

备份数据
save/bgsave命令用户用户数据库备份
将会在redis安装目录下创建dump.rdb文件

恢复数据
将备份文件放在redis安装目录下,然后启动redis服务即可。
使用 config get dir 可以获取redis安装目录

持久化:redis是内存数据库,如果数据没有备份。那么设备掉电就会丢失数据。因此redis提供了两种方式做持久化方案:RDB和AOF。

rdb持久化
将redis内存中的数据,定时备份到磁盘上保存。实际是通过一个子进程进行实现的。

子进程定时将数据备份到rdb临时文件中,再将临时rdb文件,覆盖磁盘上的rdb文件,并用二进制进行压缩。
缺点:只能定时备份,而且不能过于频繁,否则操作耗时,影响性能。

aof持久化
我们可以用二进制日志文件,记录操作命令,来进行备份。(原rdb文件+执行操作日志=恢复的新数据)

记录执行命令的日志文件就叫做AOF文件。
redis创建一个缓存区叫aof_buf。用以存储命令。存储一定数量的命令,就将缓存区的的命令写入到aof文件中。
以下是刷新周期。达到刷新周期就会写入到aof文件。
appendfsync always: 每个事件周期都同步刷新一次
appendfsync everysec: 每一秒都同步刷新一次
appendfsync no: 我只管写,让操作系统自己决定什么时候真正写入吧

那么新的问题来了。aof文件经过不断的写入,体积不断增大。就会占用空间,分析文件时更加耗时。

aof文件重写:记录数据的最终结果。(省去数据的中间状态)(同样是用一个子进程)

新的问题又来了。如果再重写aof文件期间,有新的内容写入到aof文件,那么就会数据不一致的情况。

因此,重新建立一个aof重写缓冲区。用来存放,aof文件重写期间。新写入到aof文件中的内容。等待aof重写完毕,再进行aof文件的写入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值