• Redis 数据持久化的方案的实现


     转载: https://blog.csdn.net/m_nanle_xiaobudiu/article/details/81001504

    一、需要了解的基础

    1、Redis实现数据持久化的两种实现方式:

    RDB:指定的时间间隔内保存数据快照

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

    二、RDB 实现 Redis数据持久化(默认方式)

     
    1、编辑 redis.conf

    注:使用whereis redis命令查看redis安装在哪个位置,然后进入redis安装目录的etc目录下,编辑redis.conf。

     

    2、默认备份的时间间隔


    3、默认备份的文件名称

    4、默认备份的RDB文件位置

    5、像这样,就是其中的备份文件

    6、当然,也可以主动触发保存redis数据快照,操作如下

    注:当然,如果是线上的redis要主动备份,建议使用bgsave命令,更多关于RDB的原理和使用 

    http://www.chenxm.cc/post/526.html?segmentfault

    7、缺点:

    因为是特定条件下进行一次持久化(每隔一段时间),就可能会导致一旦redis崩溃,再次回复时,可能会导致部分数据丢失。

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

    三、AOF持久化方案

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

    1、相比于RDB持久化方案的优点:

    (1)数据非常完整,故障恢复丢失数据少

    (2)可对历史操作进行处理

    2、如何开启AOF持久化模式

    将redis.conf 配置文件中的appendonly 参数改为yes 后,则redis开始启动AOF数据持久化模式

    设置AOF同步的方式,这里设置的默认的每秒同步一次

    3、开启AOF同步模式后,备份文件是这样的

    从上面可以看出,它记录了从我开启AOF后的所有操作命令

    4、缺点

    (1)因为AOF模式要把每一步redis命令都记录下来,所以就导致文件的体积会很大

    (2)而且会导致速度低于RDB,并且恢复速度慢

    四、RDB模式和AOF模式的恢复

    Redis崩溃后,重启redis会自动找备份恢复文件,下图大致描述了redis重启后的过程。


    总结:

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

  • 相关阅读:
    .NET Core依赖注入集成Dynamic Proxy
    MediatR-进程内的消息通信框架
    03-EF Core笔记之查询数据
    02-EF Core笔记之保存数据
    01-EF Core笔记之创建模型
    EF Core 基础知识
    CQRS+ES项目解析-Equinox
    CQRS+ES项目解析-Diary.CQRS
    不要让事实妨碍好故事:Facebook精准广告产品与硅谷创业揭秘,4星奇书《混乱的猴子》
    会讲故事的前物理学家万维钢解读、推荐过的书24本,好书一半
  • 原文地址:https://www.cnblogs.com/applelife/p/10495304.html
Copyright © 2020-2023  润新知