zoukankan      html  css  js  c++  java
  • Redis(五)持久化

      一、RDB

      RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。

      1.触发机制

      (1)手动触发:save命令和bgsave命令

    • save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上环境不建议使用。
    • bgsave命令:Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。

      (2)自动触发:

    • 使用save相关配置,如“save m n”。表示m秒内数据集存在n次修改时,自动触发bgsave。
    • 如果从节点执行全量复制操作,主节点自动执行bgsave生成RDB文件并发送给从节点。
    • 执行debug reload命令重新加载Redis时,也会自动触发save操作。
    • 默认情况下执行shutdown命令时,如果没有开启AOF持久化功能则自动执行bgsave。

      2.流程说明

      

      3.RDB文件的处理

    • 保存:RDB文件保存在dir配置指定的目录下,文件名通过dbfilename配置指定。可以通过执行config set dir{newDir}和config setdbfilename{newFileName}运行期动态执行,当下次运行时RDB文件会保存到新目录。
    • 压缩:Redis默认采用LZF算法对生成的RDB文件做压缩处理,压缩后的文件远远小于内存大小,默认开启,可以通过参数config setrdbcompression{yes|no}动态修改。
    • 校验:如果Redis加载损坏的RDB文件时拒绝启动

      4.RDB的优缺点

      (1)优点

    • RDB是一个紧凑压缩的二进制文件,代表Redis在某个时间点上的数据快照。非常适用于备份,全量复制等场景。比如每6小时执行bgsave备份,并把RDB文件拷贝到远程机器或者文件系统中(如hdfs),用于灾难恢复。
    • Redis加载RDB恢复数据远远快于AOF的方式。

      (2)缺点

    • RDB方式数据没办法做到实时持久化/秒级持久化。因为bgsave每次运行都要执行fork操作创建子进程,属于重量级操作,频繁执行成本过高。
    • RDB文件使用特定二进制格式保存,Redis版本演进过程中有多个格式的RDB版本,存在老版本Redis服务无法兼容新版RDB格式的问题。

      二、AOF

      AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。

      1.使用AOF

      开启AOF功能需要设置配置:appendonly yes,默认不开启。AOF文件名通过appendfilename配置设置,默认文件名是appendonly.aof。保存路径同RDB持久化方式一致,通过dir配置指定。

      AOF的工作流程操作:命令写入(append)、文件同步(sync)、文件重写(rewrite)、重启加载(load):

      

      2.命令写入

      3.文件同步

      4.重写机制

      5.重启加载

      6.文件校验

      三、问题定位与优化

      1.fork操作

      2.子进程开销监控和优化

      3.AOF追加阻塞

      四、多实例部署

  • 相关阅读:
    tar打包split分割分解拆分大包文件
    SAP 语言码转换
    SAP audit S41909
    电商收付通系列<1>图片上传API
    Ladon7.4 CVE-2020-0688 Exchange序列化漏洞利用
    [反诈骗]入侵骗子电脑-揭秘冒充企业老板诈骗全过程
    Ladon插件-CVE-2020-1472域控提权漏洞EXP
    Winrm远程命令/端口复用后门/WinrmCmd/密码爆破
    〖教程〗Ladon WinrmExec远程执行命令
    Ladon插件-批量检测网站是否使用Shiro
  • 原文地址:https://www.cnblogs.com/BigJunOba/p/9136079.html
Copyright © 2011-2022 走看看