zoukankan      html  css  js  c++  java
  • redis做持久化的两种方式,RDB、AOF讲解

    redis的两种持久化方式:

    1、RDB方式

    概念:在指定的时间间隔内保存数据快照

    实现方式:

    找到redis的安装目录,修改redis的配置文件(redis.conf):① 修改备份的时间间隔:save  Time ② 修改备份文件的文件名:dbfilename  文件名.rdb ③ 修改备份文件的备份路径:dir  路径

    手动方式:

    save  :会阻塞redis服务器,对于比较大的实例会造成长时间阻塞,线上环境不建议使用。运行save命令对应Redis日志如下:

    DB saved on disk

    bgsave:redis进程执行fork操作创建子进程,redis的持久化由子进程完成,阻塞只发生在fork阶段,时间很短。运行bgsave名字                                                               对应的Redis日志如下:

    Background saving started by pid 3152

    DB saved on disk

    RDB: 0MB of memory userd by copy-on-write

    Background saving terminated with success

    缺点:如果备份时间间隔短,比较耗费服务器性能,备份时间间隔长,可能会导致数据恢复时部分数据丢失。

    2、AOF方式

    概念:把命令追加到操作日志的尾部,保存所有的历史操作

    实现方式:修改redis的配置文件,把appendonly选项改为yes,redis即开启了AOF数据持久化模式。

    设置AOF同步的方式,这里设置的默认的每秒同步一次,修改配置文件,appendsync   everysec

    AOF文件中记录了开启AOF后的所有操作命令

    优点:数据非常完整,故障恢复丢失数据少

    缺点:由于是备份redis的每一步命令,所以文件体积会较大,恢复数据时也会较慢,比RDB慢

    总结:

    在实际应用中,根据场景不同,选择的方式也不尽相同,各有优缺点。但我个人看法,RDB的快照方式相比于AOF的逐步记录模式要好一些。至于RDB丢数据的风险,我们完全可以通过控制备份的时间间隔来避免这个问题。当然,也是可以两种方式同时使用的,只是大多不会这么做。

  • 相关阅读:
    Helvetic Coding Contest 2017 online mirror (teams allowed, unrated) J
    ROS_Kinetic_19 群机器人框架示例(micros swarm framework)
    ROS_Kinetic_18 使用V-Rep3.3.1和Matlab2015b(vrep_ros_bridge)续
    ROS_Kinetic_17 使用V-Rep3.3.1(vrep_ros_bridge)
    USB OTG原理+ ID 检测原理
    高通QSD MSM APQ区别
    qualcomm memory dump 抓取方法
    msm8974 camera driver添加新摄像头kernel hal修改
    现代控制理论-章节组织结构和仿真应用案例详细分析
    ROS_Kinetic_16 ubuntu中安装使用Matlab和ROS
  • 原文地址:https://www.cnblogs.com/cedarlip/p/11922694.html
Copyright © 2011-2022 走看看