zoukankan      html  css  js  c++  java
  • Redis的持久化机制-RDB方式和AOF方式

    场景

    Redis的持久化策略

    持久化可以理解为存储,就是将数据存储到一个不会丢失的地方。

    如果把数据存储在内存中,电脑关闭或者重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘中就算是一种持久化。

    Redis的数据存储在内存中,内存是瞬时的,如果linux宕机或者重启,又或者Redis崩溃或者重启,

    所有的内存中数据就会丢失,为解决这个问题,Redis提供了两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据。

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    RDB方式

    RedisDatabase(RDB),就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存。

    RDB保存了在某个时间点的数据集(全部数据)。存储在一个二进制文件中,只有一个文件,默认是dump.rdb。

    RDB技术非常适合做备份,可以保存最近一个小时,一天,一个月的全部数据。保存数据是在单独的进程中写文件,

    不影响Redis的正常使用,RDB恢复数据时比其他AOF速度快。

    RDB方式配置实现

    RDB方式的持久化,仅需在redis.conf文件中配置即可,默认配置是启用的。

    Centos中Redis的下载编译与安装(超详细):

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334

    Redis的启动和关闭(前台启动和后台启动):

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348

    根据上面两篇博客来到Redis安装路径下配置文件redis-conf文件的位置,可以看到dump.rdb文件

    然后对redis.conf配置文件进行编辑

    然后往下找到SNAPSHOTTING,查找在注释开始和结束之间的关于RDB的配置说明。

    1.配置执行RDB生成快照文件的时间策略。

    对Redis进行设置,让它在"N秒钟内数据集至少有M个key改动"这一条件被满足时,自动保存一次数据集。

    这里的默认配置

    save 900 1
    save 300 10
    save 60 10000

    就是说在900秒内有1个key被改动,300秒内有10个key被改动,60秒内有10000个key被改动。

    2.dbfilename:设置RDB的文件名,默认文件名dump.rdb

    3.dir :指定RDB文件的存储位置,默认是./ 当前目录

    RDB方式总结

    优点:

    由于存储的是数据快照文件,恢复数据很方便,也比较快。

    缺点:

    1.会丢失最后一次快照以后更改的数据,如果你的应用能容忍一定数据的丢失,那么使用rdb

    是不错的选择;如果你不能容忍一定数据的丢失,使用rdb就不是一个很好的选择。

    2.由于需要经常操作磁盘,RDB会分出一个子进程。如果你的redis数据库很大的话,子进程占用比较多的时间,并且可能会

    影响Redis暂停服务一段时间(毫秒级别),如果你的数据库超级大并且你的服务器的CPU比较弱,有可能会达到一秒。

    AOF方式

    Append-onlyFile(AOF),Redis每次接收到一条改变数据的命令时,它将把该命令写到一个

    AOF文件中(只记录写操作,不记录读记录),当Redis重启时,它通过执行AOF文件中所有的命令来恢复数据。

    AOF的数据持久化,仅需在redis.conf中配置即可。

    配置项:

    1.appendonly:默认是no,改为yes即开启了AOF持久化。

    2.appendfilename :指定AOF文件名,默认文件名是appendonly.aof。

    3.dir:指定RDB和AOF文件存放的位置。

    4.appendfsync:配置向aof文件写命令数据的策略:

    no:不主动进行同步操作,而是完全交由操作系统来做(即每30秒一次),比较快但不是很安全。

    always:每次执行写入都会执行同步,慢一些但是比较安全。

    everysec:没秒执行一次同步操作,比较平衡,介于速度与安全之间,这就是默认项。

    博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
  • 相关阅读:
    Reading papers_2(与GMM相关,ing...)
    Matlab DIP(瓦)ch11表示与描述练习
    HMM学习笔记_1(从一个实例中学习DTW算法)
    Matlab DIP(瓦)ch10图像分割练习
    前景检测算法_2(帧差法1)
    目标跟踪学习笔记_3(particle filter初探2)
    基础学习笔记之opencv(2):haartraining前将统一图片尺寸方法
    Reading papers_5(与human activity analysis综述相关,ing...)
    总结系列_4(C++知识学习,续...)
    HMM学习笔记_2(从一个实例中学习HMM前向算法)
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12553439.html
Copyright © 2011-2022 走看看