Redis持久化之RDB(详解)
文章目录
- 一、初识RDB
- 二、RDB特点
- 1、优势
- 2、劣势
- 三、RDB操作
- 1、概述
- 2、操作
- 四、总结
一、初识RDB
RDB 全称(
Redis DataBase
)
在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照
,它恢复数据时是将快照文件直接读到内存里
官网介绍:
流程图
看不懂这图的话,继续往下看文章,看完文章后再回来!
二、RDB特点
1、优势
适合大规模的数据恢复
- 对
数据完整性和一致性要求不高
更适合使用 节省磁盘空间
恢复速度快
2、劣势
- Fork的时候,内存中的数据被克隆了一份,
大致2倍的膨胀性(内存)
需要考虑 - 虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较
消耗性能
。 - 在备份周期在一定间隔时间做一次备份,所以如果Redis意外(宕机)down掉的话,就会
丢失最后一次快照后的所有修改
(通俗理解:在没有达到save值的时候是不备份的,这时宕机则备份生效不了。)
三、RDB操作
1、概述
Redis会单独创建 (fork) 一个子进程来进行持久化,
会先将数据写入到一个临时文件中
,待持久化过程结束后,再用这个临时文件替换上次持久化好的文件
。
整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。
Fork
- Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等) 数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程
- 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,Linux中引入了“
写时复制技术
” - 一般情况父进程和子进程会共用同一段物理内存,只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。
持久化流程
dump.rdb文件
在redis.conf中配置文件名称,默认为dump.rdb
配置位置
rdb文件的保存路径,也可以修改。默认为Redis启动时命令行所在的目录下
2、操作
1)配置快照配置
2)数据库存值
3)复制一份临时RDB
可以想象成
游戏存档
!
4)清除数据库
可以想象成
玩游戏时停电了
!
执行flushall
命令,会产生dump.rdb文件
5)把临时RDB复制到dump.rdb中
可以想象成
游戏读档
!
四、总结
因为RDB文件只用作后备用途,建议只在save上持久化RDB文件,而且只要15分钟备份一次就够了,只保留save 900 1
这条规则。
Redis持久化之RDB(详解)相关推荐
- 【Redis】Redis持久化之RDB详解(Redis专栏启动)
- Redis持久化——AOF机制详解
在运行情况下,Redis 以数据结构的形式将数据维持在内存中,为了让这些数据在 Redis 重启之后仍然可用,需要将数据写入持久存储 持久化是指将数据写入持久存储,例如固态磁盘(SSD) Redis ...
- redis数据丢失_有效避免数据丢失!Redis持久化方案选择详解
为什么需要持久化呢? 通常情况下redis的数据全部存储在内存中,数据库一旦故障发生重启数据会全部丢失,即使是在redis cluster或者redis sentinel模式下主从同步数据的恢复仍然需 ...
- redis持久化之AOF详解
一.AOF日志 既然要存储数据,那就不可避免的要对数据进行持久化操作.在redis中,有RDB和AOF两种持久化方式,其中RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通 ...
- Redis - RDB详解
1.概念 即 将redis存在内存的数据定时dump到磁盘上实现RDB持久化 2.详解 先说Redis的两个命令:SAVE BGSAVE 这两个都会将redis内存中数据保存到磁盘中. SAVE即直接 ...
- redis stream持久化_Beetlex.Redis之Stream功能详解
原标题:Beetlex.Redis之Stream功能详解 有一段时间没有写文章,techempower的测试规则评分竟然发生了变化,只能忘着补充一下占比权重最多的数据更新示例了和深入设计一下组件模块化 ...
- Redis设计与实现详解二:Redis数据库实现
Redis设计与实现详解一:数据结构与对象 Redis设计与实现详解三:多机功能实现 Redis设计与实现详解四:其他单机功能 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态 ...
- Redis基础及原理详解
Redis基础及原理详解 前言:以下是最近学习redis的一些笔记总结,文中如有不当的地方欢迎批评指正,重在记录与学习,笔芯~~ Nosql概述 演进历史 单机mysql Memcached(缓存)+ ...
- 分布式锁(基于redis和zookeeper)详解
分布式锁(基于redis和zookeeper)详解 https://blog.csdn.net/a15835774652/article/details/81775044 为什么写这篇文章? 目前网上 ...
- [redis] 10 种数据结构详解
[redis] 10 种数据结构详解 简介 5种常见数据结构 string: 最常见的 string key value list: 双向链表 set: 集合- zset: 有序集合 hash: 类似 ...
最新文章
- Static、DynamicResource学习笔记一
- hadoop配置文件说明
- 人生第一份Offer,国企、私企、外企该选择哪一个?
- 【QM-04】Inspection Characteristic(检验特征)
- VTK:可视化之ReverseAccess
- 实验6 控制结构综合程序设计 7-3 简单计算器
- python 面试题 2020_2020年最全python面试题
- 何时使用领域驱动设计
- 【音视频安卓开发 (零)】用 Android NDK 编译 FFmpeg 与 X264
- Dialog是逻辑字体,实际绘制时会选择不同字体
- 暑期实习面试——超对称,算法实习生
- 2022百度人工智能专利白皮书 附下载
- 自学软件测试需要学到哪些内容?
- 计算机网络——常见协议
- 工作中常见的方法和法则(简单的法则不简单)
- 沐阳从0到1零基础学习安卓逆向
- [译]尤雨溪: Ref语法糖提案
- (三)mysql_浅谈MySQL(三)
- pcb元器件焊接技巧
- IOS APP 发布App Store (同一开发帐号,发布N个APP)