Redis入门——Redis持久化详解(RDB和AOF)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis入门——Redis持久化详解(RDB和AOF),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4233字,纯文字阅读大概需要7分钟。
内容图文
![Redis入门——Redis持久化详解(RDB和AOF)](/upload/InfoBanner/zyjiaocheng/858/384c5219d4f44cad8225d65122dd418b.jpg)
首先声明,本系列Redis博文内容是本人学习 【狂神说Java】Redis最新超详细版教程通俗易懂整理的学习笔记,本人也是初次接触Redis,水平有限,难免有错误不足之处,欢迎大家评论指正交流。
目录
Redis持久化
为什么需要持久化?
Redis是内存数据库,如果不将内存中的数据状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据状态也会消失。所以Redis必须持久化!RDB(Redis DataBase)
本质是将数据以快照的形式保存到磁盘上。RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。也是默认的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名为dump.rdb。恢复时从RBD文件读取数据放入内存中
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB缺点是 最后一次持久化后的数据可能会丢失(丢失最后一次快照的修改,临时文件会丢失)比如设置60S内更新n次才触发,结果第58s时宕机了,则此时数据更新丢失。![Redis入门——Redis持久化详解(RDB和AOF) - 文章图片](/upload/getfiles/0001/2021/5/6/20210506084905980.jpg)
![Redis入门——Redis持久化详解(RDB和AOF) - 文章图片](/upload/getfiles/0001/2021/5/6/20210506084906948.jpg)
![Redis入门——Redis持久化详解(RDB和AOF) - 文章图片](/upload/getfiles/0001/2021/5/6/20210506084908871.jpg)
![Redis入门——Redis持久化详解(RDB和AOF) - 文章图片](/upload/getfiles/0001/2021/5/6/20210506084910710.jpg)
APPEND ONLY FILE (AOF)
将所有写操作记录下来,恢复的时候把这个文件全部执行一遍! 以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录), 只追加文件但不改写文件,Redis启动之后会读取该文件重新构建数据,换言之, Redis重启的话就根据日志文件的内容将指令从前到后执行一遍以完成对数据的恢复。 Aof保存的是appendonly.aof文件 Redis默认不开启AOFappendonly no?? ?? ? #Redis默认不开启AOF
appendfilename "appendonly.aof"? ? #aof文件名
如果aof文件有错误,这时redis是启动不起来的,我们需要修复aof文件,使用redis-check-aof修复,修复命令:
redis-check-of --fix appendonly.aof.
如果修复成功,则重启成功。
如果qof文件大于64M,太大了,fork一个新的进程来将我们的文件进行重写(aof是无限制追加) ? 优缺点:# appendfsync always? ? #每次修改都会同步,消耗性能
appendfsync everysec? ? #每秒同步一次,可能会丢失1s的数据
# appendfsync no?? ?? #不执行同步,这时操作系统自己同步数据
优点:
? ? 1.每一次修改都同步,文件的完整性会更好! ? ? 2.每秒同步一次,可能丢失一秒的数据 ? ? 3.设置从不同步,效率最高! 缺点: ? ? 1.相对于数据文件来说,aof文件大于rdb,恢复数据也比rdb慢 ? ? 2.aof运行也比rdb慢,所以默认是rdb持久化 ? 扩展: ?? ?1)RDB持久化方式能够在指定时间间隔内对你的数据进行快照存储; ?? ?2)AOF持久化方式记录每次对服务器写的操作,当服务器重启时会重新执行这些操作拉埃恢复原始数据,AOF命令以Redis协议追加保存每次写的操作到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。 ?? ?3) 只做缓存,如果只希望数据在服务器运行时存在,也可以不使用任何持久化。 ?? ?4)——同时开启两种持久化方式,Redis重启时优先使用aof文件来恢复原始数据,因为一般情况下aof数据更完整(记录每次操作再重头到位执行)。 ? ? ? ——RDB数据不实时,同时使用两者,Redis优先找AOF文件。RDB更适合备份数据库,AOF在不断变化时不好备份,快速重启,而且不会有AAOF可能潜在的bug,留着作为一个万一的手段。 ?? ?5)性能建议:RDB文件只用作后背用途,建议只在slave上持久化RDB文件,一般设置只要15分钟备份一次就好,save 900 1 ? ?? ??? ?内容总结
以上是互联网集市为您收集整理的Redis入门——Redis持久化详解(RDB和AOF)全部内容,希望文章能够帮你解决Redis入门——Redis持久化详解(RDB和AOF)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。