首页 > 数据库 >Redis持久化——RDB

Redis持久化——RDB

时间:2023-06-04 19:45:48浏览次数:36  
标签:持久 备份 RDB Redis rdb 进程

RDB(Redis DataBase)

在指定的时间间隔内将内存的数据集快照(当前某点的数据snapshot)写入磁盘,它恢复时是将快照文件直接读到内存里【默认开启】

备份如何执行:

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件【保证数据的一致性和完整性】中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程不进行任何IO操作,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加高效,RDB缺点是最后一次持久化后的数据可能丢失。

Fork的作用是复制一个与当前进程一样的进程,新进程的所有数据【变量、环境变量、程序数据等】数值都和原进程一样,但是是一个全新的进程,并作为原进程的子进程

在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,Linux中引入了“写时复制技术”

一般情况父进程和子进程会共用同一段物理内存,只有进程空间的各段内容要发生变化时,才会将父进程的内容复制一份给子进程

如save 20 3 代表20秒以内至少有三个key发生变化就进行持久化操作

优势:

适合大规模的数据恢复

对数据完整性和一致性要求不高更适合用

节省磁盘空间

恢复速度快

缺点:

fork时,内存中的数据被克隆了一份,大致两倍的膨胀性需要考虑

虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能

在备份周期一定时间间隔做一次备份,所以如果Redis意外down掉的话,就会丢失最后一次快照后的所有修改。

 

rdb的备份

先通过config get dir查询rdb文件的目录

将*.rdb的文件拷贝到别的地方

rdb的恢复:关闭Redis、先把备份的文件拷贝到工作目录下cp dump2.rdb dump.rdb,启动Redis,备份数据会直接加载

 

标签:持久,备份,RDB,Redis,rdb,进程
From: https://www.cnblogs.com/fxzm/p/17456168.html

相关文章

  • Redis主从复制
    主从复制简介主从复制即将master中的数据即时、有效的复制到slave中。。特征:一个master可以拥有多个slave,一个slave只对应一个master职责:master写数据执行写操作时,将出现变化的数据自动同步到slave读数据(可忽略)slave读数据写数据(禁止)......
  • 基于2.8版本redis配置文件中文解释
        在Redis中直接启动redis-server服务时,采用的是默认的配置文件。采用redis-server xxx.conf这样的方式可以按照指定的配置文件来运行Redis服务。下面是Redis2.8.9的配置文件各项的中文解释。1#daemonizeno默认情况下,redis不是在后台运行的,如果需要在后台运......
  • Redis事务-秒杀并发模拟
    使用工具ab模拟测试:yuminstallhttpd-toolsab--help:使用信息ab-n1000-c100http://localhost8080/SecKill:一个1000请求中有100个并发操作vimpostfile模拟表单提交参数,以&符号结尾;存放当前目录,内容:prodid=0101&ab-n1000-c100-p~/postfile-T application/x-www......
  • Docker安装Java, Apache, Redis, Tomcat, Postgresql, SSH
    [color=red]centos安装Supervisor[/color][url]http://www.alphadevx.com/a/455-Installing-Supervisor-and-Superlance-on-CentOS[/url]网络设定[b][color=darkblue]#创建网络brctladdbrbr0iplinksetdevbr0upipaddradd192.168.2.1/24devbr0#创建容器#......
  • 踩坑|以为是Redis缓存没想到却是Spring事务!
    前言  最近碰到了一个Bug,折腾了我好几天。并且这个Bug不是必现的,出现的概率比较低。一开始我以为是旧数据的问题,就让测试重新生成了一下数据,重新测试。由于后面几轮测试均未出现,我也就没太在意。  可惜好景不长,测试反馈上次的问题又出现了。于是我立马着手排查,根据日志的表......
  • Redis(二) -- 练习
    模拟手机验证码需求:使用redis模拟手机验证码发送,验证码有效期60s,验证验证码输入不能超过3次,超过3次今天就没机会了//验证手机号/***判断字符串是否符合手机号码格式*移动号段:134135136137138139147148150151152157158159165172178182183184187......
  • Redis
    关系型数据库(RMDBS)如果数据库中表与表之间存在某种关联的内在关系,我们就称这种数据库为关系型数据库。比如:Mysql/MariaDB、postgreSQL、Oracle、SQLServer、DB2、Access、SQLlite3特点:全部使用SQL(结构化查询语言)进行数据库操作。都存在主外键关系等关系特征。大部分都支持......
  • 2023-06-03:redis中pipeline有什么好处,为什么要用 pipeline?
    2023-06-03:redis中pipeline有什么好处,为什么要用pipeline?答案2023-06-03:Redis客户端执行一条命令通常包括以下四个阶段:1.发送命令:客户端将要执行的命令发送到Redis服务器。2.命令排队:Redis服务器将收到的命令放入队列中,按照先进先出(FIFO)的原则等待执行。3.命令执行:当Redis服务器轮......
  • 2023-06-03:redis中pipeline有什么好处,为什么要用 pipeline?
    2023-06-03:redis中pipeline有什么好处,为什么要用pipeline?答案2023-06-03:Redis客户端执行一条命令通常包括以下四个阶段:1.发送命令:客户端将要执行的命令发送到Redis服务器。2.命令排队:Redis服务器将收到的命令放入队列中,按照先进先出(FIFO)的原则等待执行。3.命令执行:当Redis服......
  • redis设计学习
    redis数据类型redis自定义字符串(SDS)redis自定义一种字符串SDS(SimpleDynamicString),该字符串数据结构大概定义了字符编码,char[]数组存储字节,达到了我们存储字符串和二进制数据的需求,也实现了我们存储不同编码的字符串和二进制图片等数据。区别于C语言中的String,这种字符串起......