美文网首页
(二) Redis持久化

(二) Redis持久化

作者: Franck_ | 来源:发表于2021-06-13 15:54 被阅读0次

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

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

    持久化的两种方式。

    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文件大的时候, 生成的时候会导致数据停止服务,几秒或者其他。

    相关文章

      网友评论

          本文标题:(二) Redis持久化

          本文链接:https://www.haomeiwen.com/subject/bfymeltx.html