redis 持久化的两种方式和恢复

一、Redis持久化的方式有两种:
    1.RDB:对内存中数据库状态进行快照
    2.AOF:把每条写命令都写入文件,类似于mysql的binlog日志
    
  RDB方式:将Redis在内存中的数据库状态保存到磁盘里面,RDB文件是一个经过

压缩的二进制文件,通过该文件可以还原生成RDB文件的数据状态。
  RDB的生成方式:
  1.指向命令手动生成
    有两个Redis命令可以生成RDB文件,一个是SAVE,另一个是BGSAVE,SAVE

命令会阻塞Redis服务器进程,知道RDB文件创建完毕为止,在服务器阻塞期间,服

务器不能处理任何的进程,BGSAVE会派出一个子进程,然后由子进程负责创建RDB

文件,服务器进程(父进程)继续处理命令请求,创建RDB文件结束之前,客户端

发送的 BGSAVE 和 SAVE 命令会被服务器拒绝
   2.通过配置自动生成
    可以设置服务器配置的save选项,让服务器每隔一段时间自动执行一次BGSAVE命令,可以通过save选项设置多个保存条件,但只要其中任意一个条件被满足就会执行BGSAGE命令
    列如:
    save 900 1
    save 300 10
    save 60  10000
    那么只要满足以下三个条件中的其中一个,BGSAVE命令就会被执行
    服务器在 900 秒之内,对数据库进行了 1 次修改
    服务器在 300 秒之内,对数据库进行了 10 次修改
    服务器在 900 秒之内,对数据库进行了 10000 次修改
AOF方式:是通过保存Redis服务器所执行的写命令来记录数据库状态的AOF文件刷新方式,有三种:
    1.appendfsync always --每提交一个修改命令都调用fsync到AOF文件,非常慢,但是很安全;
    2.appendfsync everysec--每秒都调用fsyns刷新到AOF文件,很快但可能丢失一秒内的数据;
    3.appendfsync no--依靠OS进行刷新,redis不主动刷新AOF,这样最快但是安全性差;
    默认并且推荐每秒刷新,这样在速度和安全上都做到了兼顾
二、数据恢复
    1.ROB方式
    ROB文件的载入工作是在服务器启动时自动执行的,没有专门用于载入ROB文件命令,只要Redis服务器再启动时检测到ROB文件存在,它就会自动载入ROB的文件,在服务器载入的期间,会一直处于阻塞状态,知道载入工作完成为止
    2.AOF方式
    服务器在启动时,通过载入和执行AOF文件中保存的命令来还原服务器关闭之前的数据,具体库状态过程:
        载入AOF文件
        创建模拟客户端
        从AOF文件中读取一条命令
        使用模拟客户端执行命令
        循环读取并执行命令,知道全部完成
        如果同时启动了AOF和ROB方式,AOF优先,启动时只加载AOF文件恢复数时之家在
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值