redis容灾


 redis 持久化策略:

  RDB:对redis中的数据周期性的持久化

    优点:1、会生成多个数据文件,每个数据文件都代表了某一个时间的全部数据。非常适合做冷备。可以将数据上传到云服务备份。

    2、RDB对redis对外提供的服务影响小,可以让redis保持高性能。

    3、相比较来说,基于RDB文件重启恢复redis更快

  AOF:对每条写入命令作为日志。以append-only模式写入日志。

    优点:1、可以更好的保护数据不丢失,一般AOF每隔1秒,通过后台线程执行一次fsync操作。最多丢失1s数据

    2、文件以append-only模式写入,没有io开销。文件不容易损坏。损坏也很容易恢复。

    3、AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。因为在rewrite log的时候,会对其中的指导进行压缩,创建出一份需要恢复数据的最小日志出来。再创建新日志文件的时候,老的日志文件还是照常写入。当新的merge后的日志文件ready的时候,再交换新老日志文件即可。

    4、日志文件可读性强。适合做灾难性的误删除的紧急恢复。

 

一般线上环境我们会将2中机制都开启。具体的RDB策略和AOF策略都可以在redis.conf里面配置

RDB:  save 60 1000 : 表示每60s有超过1000条数据更新就备份。

AOF: append-only : true 开启aof策略

    everysec: 每秒备份

    auto-aof-rewrite-percentage 100 : 当aof大小膨胀到上次2倍就备份

    auto-aof-rewrite-min-size 64mb : 和上面是 且 关系。 aof文件必须超过64m才会备份

 

通过RDB恢复数据的步骤:

先将云服务的RDB备份数据copy到redis配置的备份目录。然后将aof关闭(一定要关闭,否则优先从aof日志文件本分,但是如果没有的话就创建空的。所以redis是无法加载rdb备份文件的)。然后重启redis,此时我们redis-cli 进入redis发现redis已经自动加载备份的rdb文件数据了。这时候手动命令启动aof。这时候redis就会备份aof日志。这启动aof是暂时的。我们停掉redis,在配置文件中修改将aof开启,然后再开启,现在redis已经恢复数据,且AOF已经开启了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM