zoukankan      html  css  js  c++  java
  • redis的备份

    了解redis的朋友应该知道它有两种数据持久化的方式,这里我作一个简单的介绍,AOF(append only  file)和RDB.

    1.RDB

    这是一种比较常见的方式,采用 写时复制 的方式,效率高,速度快,介绍一下写时复制的机制:

    当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作:

    • Redis 调用 fork() ,同时拥有父进程和子进程。
    • 子进程将数据集写入到一个临时 RDB 文件中。
    • 当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。

    这种工作方式使得 Redis 可以从写时复制(copy-on-write)机制中获益。

     

    这种机制使得RDB的速度非常得快,但是存在一些安全性问题,当我的redis服务因为某种原因宕了,当内存新增数据很庞大,子进程需要几分钟才能将临时文件书写完毕的时候。那么在宕机之后,这几分钟的数据很可能就丢失了。所以处于安全性考虑的原因,我会建议使用第二种方式,AOF机制。

    2.AOF

    aof采用一种fsync的方式进行持久化,相比RDB的方式会相对较慢。但是相对安全,甚至可以说是绝对安全的,取决于具体的配置。他不需要子进程进行协助,他是一种将有关写的命令append到文件的方式来记录redis的状态方式。aof也可以分为三种方式进行append。在此之前先打开appendonly的开关为yes.

         appendfsync always  (每次向内存中执行写操作的时候,都执行一次fsync,相当安全,建议数据量不大的时候,又想保证数据安全性的情况下使用)

         appendfsync  everysec (每秒进行一次fsync,中庸之道)

         appendfsync no  (不建议使用)

    我这里例举一下redis>2.2的由RDB切换到AOF的方式

    [root@localhost redis-2.8.9]# redis-cli
    127.0.0.1:6379> config set appendonly yes
    OK
    127.0.0.1:6379> config set save ""
    OK
    127.0.0.1:6379> 
    

    redis-cli进入redisShell客户端,然后开启aof ,关闭RDB方式。

    记得修改 redis.conf里面的配置,不然下次重启还是使用原来的配置,读取dump.rdb进行恢复

    配置修改如下:

       #save ""                                 save ""   
     
    save 900 1                                  #save 900 1 
    save 300 10            ------------------>  #save 300 10 
    save 60 10000                               #save 60 10000

     

      appendonly no             --------------------->  appendonly yes

    备份文件有两种方式

    一.RBD备份方式

    1.执行save命令 ,找到dump.rdb(默认放到执行命令(redis-server)的路径下)

    2.执行redis-server  redis.conf (如果配置文件选择的是RDB备份方式)

    启动之后就ok了

    二.AOF备份方式

    1.找到appendonly.aof(默认放到执行命令(redis-server)的路径下)

    2.执行redis-server redis.conf就可以了(如果配置文件选择的是AOF备份方式)

  • 相关阅读:
    一、分组查询
    续、传参
    页面加载时loading效果
    2019-6 21
    一、Nuget管理
    三、项目分析
    七、OIDC
    【2019-10-19】习惯的力量
    【2019-10-18】好好珍惜自己的好奇心
    【2019-10-17】女人有钱,体面又可爱
  • 原文地址:https://www.cnblogs.com/think-in-java/p/5121401.html
Copyright © 2011-2022 走看看