写点什么

12-Redis 持久化

  • 2022 年 5 月 10 日
  • 本文字数:968 字

    阅读完需:约 3 分钟

[](()RDB(Redis DataBase)

什么是 RDB



在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的 Snapshot 快照,它恢复时是将快照文件直接读到内存里。


Redis 会单独创建 ( fork )一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何 IO 操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那 RDB 方式要比 AOF 方式更加的高效。RDB 的缺点是最后一次持久化后的数据可能丢失。我们默认的就是 RDB,一般情况下不需要修改这个配置!


有时候在生产环境我们会将这个文件进行备份


rdb 保存的文件是 dump.rdb 在配置文件中配置



触发机制


1、 save 的规则满足的情况下,会自动触发 rdb 规则


2、执行 flushall 命令,也会触发我们的 rdb 规则!


3、退出 redis,也会产生 rdb 文件!


备份就自动生成一个 dump.rdb



如何恢复 rdb 文件?


1、只需要将 rdb 文件放在我们 redis 启动目录就可以,redis 启动的时候会自动检查 dump.rdb 恢复其中的数据!


2、查看需要存在的位置


127.0.0.1:6379> config get dir


  1. "dir"

  2. "/usr/local/bin" #如果在这个目录下存在 dump .rdb 文件,启动就会自动恢复其中的数据


127.0.0.1:6379>


几乎就他自己默认的配置就够用了,但是我们还是需要去学习


优点:


1、适合大规模的数据恢复!


2、对数据的完整性要不高!


缺点︰


1、需要一定的时间间隔进程操作!如果 redis 意外宕机了,这个最后一次修改数据就没有的了!


2、fork 进程的时候,会占用一定的内容空间!!


[](()持久化之 AOF 操作


===========================================================================

[](()AOF(Append Only File)

  • 将我们的所有命令都记录下来,history,恢复的时候就把这个文件全部在执行一遍!


是什么



以日志的形式来记录每个写操作,将 Redis 执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis 启动之初会读取该文件重新构建数据,换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 次以完成数据的恢复工作


Aof 保存的是 appendonly.aof 文件


配置


默认是不开启的,我们需要手动进行配置 ,把这里的 no 改成 yes 就开启了



重启 redis 就可以生效的



用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
12-Redis持久化_Java_爱好编程进阶_InfoQ写作社区