Redis(1.4)Redis的持久化

Redis持久化

【1】概念

  Redis所有的数据存储在内存中,为了保证重启后,redis数据不丢失,需要把redis数据保存在磁盘中。

【2】持久化使用方式策略

  (1)RDB 方式:默认支持,不需要配置

      在指定的时间间隔内,将redis 内存中的数据集快照写入到磁盘当中去,比如每隔30S写入一次。

  (2)AOF方式

      以日志的形式记录服务器所处理的的每一个操作,在服务器启动之初,会读取该文件来重新构建redis数据库数据,以此来保证重启后数据库的数据是完整的。

  (3)不持久化

      单纯做缓存用

  (4)RDB+AOF 同时使用

【3】两种核心方法

  (1)RDB

    优势

      (1.1)整个redis数据库只包含1个文件

      (1.2)对于灾难恢复而言,可以通过拷贝压缩等传输到异地机

      (1.3)性能最大化:在开始持久化的时候,只需要分一些进程,接下来就可以由子进程完成持计划的工作。

          可以避免服务器进程进行持久化操作。数据量大的时候,恢复速度很快。

    劣势

      (1.1)对于高可用性和数据安全性而言:会丢失一个间隔内的数据,比如30秒一次持久化,但28秒的时候宕机了,那么就会丢自上一个备份后的28秒的所有操作。

      (1.2)当数据集非常大的时候,需要服务器停止一点时间甚至超过1s

    

    基本操作与配置:

      (1.1)默认的存盘配置如下(大概在文档15%的位置)

      

         如英文描述一样。

           save num1_second num2_key   每num1秒中,有num2个key有修改,则存盘

          这里的默认就是每900/300/60 秒 有 1/10/10000 个 key 被修改,就存盘。

      (1.2)默认redis数据库文件名称与存放路径(大概在文档15%的位置)

            

           上面是文件名,下面是上面文件所在的路径,  ./的意思就是,和当前打开的配置文件同一路径。

            

    

  (2)AOF

    优势:

      (2.1)3种同步策略

          《1》每秒同步:异步持计划,效率高,会丢失1S内数据

          《2》每修改同步:同步持久化,效率低,不会丢数据

          《3》不同步

      (2.2)日志文件

          《1》文件写入形式:使用的是append追加方式,如果宕机不会被破坏已经写入的数据。

          《2》宕机恢复:如果一个命令写到一般就宕机了,可以用 reids-check-aof 工具来解决数据一致性问题。

          《3》重写机制:如果日志文件过大,redis可以自动启用循环重写机制,redis以append的方式把最新操作数据写入到最老的日志文件中,同时redis还会创建一个新的文件来记录此期间哪些修改命令被执行了。因此在进行重写切换的时候,可以更好的保证数据那权限。

          《4》可读性强:日志文件记录了很详细的修改操作记录和数据,可以用此文件重建数据库。

    劣势

      (2.1)文件大小:AOF比RDB文件大许多

      (2.2)执行效率:每次操作都需要记录,比起RDB每过一段时间批量持久化记录,要慢不少。

      (2.3)需要额外配置:

        默认是关闭的,如果要启用则要把下图中第1行改成 yes,开启后下面就是文件名。

        最后面的3行是同步策略,always 是修改后就立马同步,everysec 是每一秒,另外一个是不同步

         

          

猜你喜欢

转载自www.cnblogs.com/gered/p/11686973.html