(二) Redis持久化

为什么要持久化?持久化不会降低性能吗?
持久化主要是为了故障恢复。
会降低一定的性能,但是为了故障恢复,可以接受的牺牲。

持久化: 可以将持久化的文件备份到云服务器。

持久化的两种方式。

1 AOF
每次有命令(写命令)的时候,会追加到1个日志文件里面去。
会先写到linux的os catch,里面去, 然后到一定的时间,才会写到硬盘文件去。

Redis可以调用操作系统的命令,强制将os catch写到硬盘里面去。

只有1个AOF文件,文件会变得越来越大。 随着增长,会生成新的AOF文件。
这个过程是: 文件变得越来越大的时候,Redis会执行AOF rewrite操作,这个操作,会基于当前的内存数据,构造一个比较小的AOF文件,然后将旧的大的AOF文件删除。

恢复过程:执行文件所有的指令。

1秒钟会强制写入到磁盘, 如果发生故障,最多丢失1秒钟的数据;也可以设置每写入1条数据,就同步一次到磁盘,做到数据不丢, 但是这样Redis的QPS就会大幅度降低。

2 RDB
生成文件快照的方式。
定时生成一个全量文件快照的方式。适合做冷备份。
会生成多个文件快照, 可以写个定时的脚本, 将文件快照传输到其他服务器上面去做备份。

可以保证Redis的性能最高, 因为是相隔一段时间才会进行备份。

相隔备份的时长,可以通过配置来设定。

恢复过程: 直接加载文件到内存中。

数据恢复比AOF快。

两次备份之间, 如果发生故障,就会丢掉没有来得及备份的数据。

RDB文件大的时候, 生成的时候会导致数据停止服务,几秒或者其他。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ok,今天我们来整理下Redis持久化这个知识点,Redis的持久化对于分布式缓存来说是必不可少的一个部分,试想,...
    AmosZhu阅读 489评论 0 2
  • 打造高性能高可靠的Redis架构 redis是内存数据库,利用持久化可以解决当redis服务器关机或者重启数据丢失...
    黄二的NPE阅读 291评论 0 0
  • 前言 在上一篇文章中,介绍了Redis内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复...
    Java架构阅读 2,348评论 3 21
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    空语阅读 1,608评论 0 2
  • 前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、...
    不_一阅读 127评论 0 1