RDB

redis database 的简写 ;

在指定时间间隔后,将内存中的数据集快照写入数据库 ;在恢复时候,直接读取快照文件,进行数据的恢复 ;

在进行 RDB 的时候,redis 的主线程是不会做 io 操作的,主线程会 fork 一个子线程来完成该操作;

子线程在操作的时候,会先将数据写进临时文件中,等到内存中所有的数据都写进临时文件中以后,才会进行文件的替换,用该临时文件替换掉上一次的持久化文件 ;

从子线程的工作方式,我们也可以看出,最后一次持久化操作以后的数据面临着丢失的风险 ;


关于 fork

fork 作用是复制,复制当前线程的一个副本,副本是什么概念,复制品的意思,也就是说,主线程的数据,都会被 copy 来,这样就导致一个问题,每次进行 RDB 的时候,其实内存中是有两份数据的,这个需要考虑到 ;


dump.rdb 文件

RDB 方式保存的文件是 dump.rdb 文件 ;

在配置文件中进行配置,不再累赘,前一篇 redis 配置文件 的博客,已经讲了


如何触发 RDB 快照

  1. 使用 save 命令,会立刻对当前内存中的数据进行持久化 ,但是会阻塞,也就是不接受其他操作了;
  2. flushall 命令也会触发持久化 ;
  3. 满足配置条件中的触发条件 ;
  4. bgsave 是异步进行,进行持久化的时候,redis 还可以将继续响应客户端请求 ;
  5. 重新启动 redis ,也会触发,记进行加载持久化文件 ;

可以通过 lastsave 获取上一次 save 的时间 ;


如何恢复

将备份文件放在 redis 的安装目录,然后启动 redis 即可 ;


优势

  1. 适合大规模文件的备份,速度比较快 ;
  2. 对数据的完整性和一致性要求不高
  3. 在备份的时候,是子线程在操作,不需要 redis 的主线程进行 IO 操作,不会影响性能;

劣势

  1. fork 对内存占用 ;
  2. 最后一次持久化以后的数据存在丢失的风险 ;

停掉 RDB

在配置文件中,配置 save ""即可 ;

redis 持久化 ——RDB的更多相关文章

  1. Linux - redis持久化RDB与AOF

    目录 Linux - redis持久化RDB与AOF RDB持久化 redis持久化之AOF redis不重启,切换RDB备份到AOF备份 确保redis版本在2.2以上 实验环境准备 备份这个rdb ...

  2. Redis持久化rdb&aof

    Redis持久化rdb&aof 前言 持久化:即把数据存储于断电后不会丢失的设备中,通常是硬盘 常见的持久化方式: 主从:通过从服务器保持持久化,如mongoDB的replication se ...

  3. Redis持久化----RDB和AOF 的区别

    关于Redis说点什么,目前都是使用Redis作为数据缓存,缓存的目标主要是那些需要经常访问的数据,或计算复杂而耗时的数据.缓存的效果就是减少了数据库读的次数,减少了复杂数据的计算次数,从而提高了服务 ...

  4. redis持久化 RDB与AOF

    redis持久化 RDB与AOF RDB与AOF区别 rdb: 基于快照的持久化,速度更快,一般用做备份,主从复制也是依赖于rdb持久化功能 aof:以追加的方式记录redis操作日志的文件,可以最大 ...

  5. redis持久化RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  6. 4、解析配置文件 redis.conf、Redis持久化RDB、Redis的主从复制

    1.Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 2.INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包 ...

  7. redis持久化RDB与AOF

    redis持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. RDB持久化 ...

  8. redis持久化 (rdb

    RDB(快照持久化) RDB(redis database),可以理解为快照/内存快照,RDB持久化过程是将当前进程中的数据生成快照存储到硬盘中 触发机制RDB持久化的触发机制分为两种,手动触发和自动 ...

  9. 配置方案:Redis持久化RDB和AOF

    Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘.当下次Redis重启时,利 ...

  10. Redis持久化--RDB+AOF(转)

    1.Redis两种持久化方式 RDB 执行机制:快照,直接将databases中的key-value的二进制形式存储在了rdb文件中 优点:性能较高(因为是快照,且执行频率比aof低,而且rdb文件中 ...

随机推荐

  1. matplot 绘制折线图

    #coding=utf-8 import matplotlib.pyplot as pltx_data = ['2011','2012','2013','2014','2015','2016','20 ...

  2. CF590E Birthday

    题意 给定 \(n\) 个只由 \(a,b\) 组成的字符串,保证两两不同. 要求从中选出尽可能多的字符串,使得选出的字符串中,任意一个字符串不是另一个的子串. 求最多能选多少并输出一个可行解. \( ...

  3. 走进JavaWeb技术世界13:Hibernate入门经典与注解式开发

    原文地址:Hibernate入门这一篇就够了 前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate ...

  4. Java 代码里乱打日志了,这才是正确的打日志姿势

    使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一. 实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打日志 当你遇到问题的时候,只能通过debug功能 ...

  5. ubuntu video and audio

    推荐你直接安装ubuntu-studio系统.里面有默认安装了很多多媒体软件,主要集中在4个方面1.音频编辑:Jack, Ardour, Audacity, Qtractor. Hydrogen, Y ...

  6. C# 客户端网络请求 对HttpClient的封装

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/a1037949156/article/d ...

  7. 如果你处理的是字节,那么 Go 语言可能是一个不错的选择。 如果你处理的是数据,那么 Go 语言可能不是一个好的选择。

    用Go语言编程的利与弊 AI前线小组 译 InfoQ 今天

  8. 解决ZendStudio打开utf-8格式的php文件乱码

    一般php文件都为utf-8无BOM格式的,用zendstudio默认设置打开时中文会产生乱码,这是因为zendstudio默认设置编码格式为GBK格式,所以我们这里需要重新设置其编码格式,这个是ze ...

  9. Qt KDChart编译

    最近开发中需要用到甘特图,感觉KDChart这个插件不错,在这里记录一下编译过程(其实很好编译,而且一次性就过了) 下载,kdchart-2.6.1-source,解压 打开src目录,用Qt Cre ...

  10. 123457123457#0#-----com.yuming.ZuiNiuChengYu--前拼后广--最牛成语

    com.yuming.ZuiNiuChengYu--前拼后广--最牛成语