Redis持久化,分为RDB方式和AOF方式,它们可以单独使用,也可以混用。Redis默认的是使用RDB方式。

一、RDB方式

1.触发快照的方式

RDB方式是在指定时间间隔内某一时间点的数据集快照。以下几种情况会触发快照。

(1)根据配置规则,进行自动快照。

看配置文件:

86-88行,这三行就是配置文件中默认设置的规则。通过看文档中的注释就可以理解其中含义,在规定时间内,发生一定次数的变化,就会进行快照。三种情况任意一种满足,都会进行快照。

在97行和107行,是快照的保存路径和文件名称,当然,可以也可以自己指定。

(2)执行SAVE,BGSAVE命令

save命令:Redis同步进行快照操作,期间会阻塞所有客户端的请求,当数据库数据较多时,应避免使用这个命令。

bgsave命令:从名字可以猜测到,这个命令是在后台异步进行,并且同时可以处理客户端的请求。

(3)执行复制(replication)

当设置了主从模式时,在复制初始化时自动进行快照。

2.RDB持久化过程

(1)Redis使用fork()函数,复制一份当前进程的副本;

(2)父进程继续处理客户端的请求,子进程开始将内存中的数据写入硬盘中的临时文件;

(3)当子进程写完所有数据后,用临时文件,替换旧的数据文件,至此,一次快照完成。

注意:fork()函数操作时,那一刻的数据,将会被存储,fork()之后快照完成前,那一时间的数据将会丢失。

二、AOF方式

1.AOF使用

Redis存储非临时的数据时,一般要打开AOF来降低进程终止导致的数据丢失。它可以将每条命令记录下来,写进AOF文件里。

默认AOF是关闭的,将262行的 no变成yes,就可以了。默认的文件名见265行。

2.AOF文件重写

重写意思是,删除文件中无用的行为。比如set name lee 分别将不同的值进行设置,但是前面设置的值肯定被覆盖,只有最后一次设置的值有效。

配置文件中对重写功能的设置:

最后两行的设置。328行,如果新文件大小比原文件大100%时,进行重写。最后一行,文件大小必须达到64mb时,才会重写。

两个关系必须同时满足,才可以重写。

三、RDF与AOF的比较

这里推荐一篇博客了,有兴趣的朋友可以看看。

https://my.oschina.net/davehe/blog/174662

Redis(二)持久化的更多相关文章

  1. Redis(二)、Redis持久化RDB和AOF

    一.Redis两种持久化方式 对Redis而言,其数据是保存在内存中的,一旦机器宕机,内存中的数据会丢失,因此需要将数据异步持久化到硬盘中保存.这样,即使机器宕机,数据能从硬盘中恢复. 常见的数据持久 ...

  2. redis + 主从 + 持久化 + 分片 + 集群 + spring集成

    Redis是一个基于内存的数据库,其不仅读写速度快,每秒可以执行大约110000的写操作,81000的读取操作,而且其支持存储字符串,哈希结构,链表,集合丰富的数据类型.所以得到很多开发者的青睐.加之 ...

  3. Redis学习笔记(5)——Redis数据持久化

    出处http://www.cnblogs.com/xiaoxi/p/7065328.html 一.概述 Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存 ...

  4. 【Redis】持久化

    Redis提供了为持久化提供了两种方法:第一种是快照:他可以将存在某一时刻的所有数据都写入硬盘里面.第二种是只追加文件(AOF):它会在执行命令时,将被执行的写命令复制到硬盘里面. Redis支持持久 ...

  5. Redis 之持久化

    目录 一.前言 二.持久化类型之 RDB 三.持节化类型之AOF 四.Redis 持久化类型的抉择 五.持久化的恢复 六.持久化问题的分析定位与优化 七.回顾总结 一.前言 首先,来回顾下前面文章的知 ...

  6. redis的持久化相关操纵

    一.redis数据持久化(数据保存在硬盘上) 1. 关系型数据库Mmysql持久化 任何增删改语句都是在硬盘上操作(安全) 断电,硬盘上数据还在 2.非关系型数据库 默认所有的增删改都是在内存中操作( ...

  7. redis(5)持久化

    一.持久化 计算机的数据有两种状态: 1)持久态:如硬盘上的数据 2)瞬时态:如内存当中的数据 持久化就是将瞬时数据转换为持久数据的一个过程,但注意持久化并不意味的数据永远存在,针对不同的持久化,数据 ...

  8. Redis(五):Redis的持久化

    Redis的持久化目录导航: 总体介绍 RDB(Redis DataBase) AOF(Append Only File) 总结(Which one) 总体介绍 官网介绍 RDB(Redis Data ...

  9. redis的持久化(RDB&AOF的区别)

    RDB 是什么? 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里. Redis会单独创建(fork)一个子进程来进行持久化,会 ...

  10. Redis学习笔记(5)—— Redis的持久化方案&Redis的集群搭建

    一.Redis的持久化方案 Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化. Redis支持两种 ...

随机推荐

  1. Android 音视频深入 四 录视频MP4(附源码下载)

    本篇项目地址,名字是<录音视频(有的播放器不能放,而且没有时长显示)>,求star https://github.com/979451341/Audio-and-video-learnin ...

  2. Five Great .NET Framework 4.5 Features (五大特性)

    [译].Net 4.5 的五项强大新特性   本文原文:Five Great .NET Framework 4.5 Features译者:冰河魔法师 目录 介绍 特性一:async和await 特性二 ...

  3. 每天CSS学习之transform-origin

    在上一篇中,我们学习了如何使用transform来进行2D变形.今天要讲述的transform-origin与这个变形有关. origin翻译过来的意思是原点.开端.transform-origin寓 ...

  4. 前端基础之jQuery操作标签

    一.样式操作 样式类 addClass(); // 添加指定的CSS类名. removeClass(); // 移除指定的CSS类名. hasClass(); // 判断样式存不存在 toggleCl ...

  5. Android : android 8.0 audio 接口分析

    1.HIDL 的概念 HIDL 读作 hide-l,全称是 Hardware Interface Definition Language.它在 Android Project Treble 中被起草, ...

  6. Calendar获取当前年份、月份、日期

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Te ...

  7. BBbacktrace installation

    1: get the installation package https://backtrackbb.readthedocs.io/en/latest/Method.html#overview ht ...

  8. centos7安装maven,git

    1.maven 下载 2.安装包 解压 3.配置maven环境变量 4.检查是否安装成功 5.检查是否安装 git 6.yum 安装 git 7.配置 git 环境变量 8.检查git是否安装成功 1 ...

  9. 2019-03-25-day018-面向对象

    re模块 字符串匹配 列表 = findall(正则表达式,待匹配的字符串) 找所有 结果集 = search 找第一个,结果集.group() 结果集 = match 从第一个字符开始匹配,结果集. ...

  10. [工作日志] 2018-11-21 主要: 改bug 自测 :校验图片后缀名

    正则表达式 用以下方式去校验图片的后缀 String reg = ".+(.JPEG|.jpeg|.JPG|.jpg)$";String imgp= "Redocn_20 ...