RDB初步了解
RDB概念
- 快照文件是.rdb结尾
- redis6.2以前和之后(包括6.2)在什么条件下会保存rdb文件有所不同
- 以前
- 15min&&1个key(改变)调用保存
- 5min&&10key(改变)调用保存
- 1min&&10000key(改变)调用保存
- 之后(改变)
- 60min&&1key(改变)调用保存
- 5min&&100key(改变)调用保存
- 没有变化
- 以前
RDB要修改配置文件的地方
- 文件名
- 可以修改下文件的保存时间(save time changes)
- 保存文件的地方:dir ....
RDB完成使命的道路(自动挡)
- 只要达到条件就会生成一个rdb
- flushall/flushdb也会自动生成一个rdb但是是空的
- shutdown也会自动生成一个rdb(不为空,同时即使没有满足到原先保存的条件也会保存)
- redis在重启的时候会默认在我们原先指定好的dir(存放rdb文件的位置)来读取rdb,恢复数据
在生成rdb文件中一定要存在另一台服务器上,防止生产机物理损坏后备份文件也挂了,同时生成的rdb只会是一个,倘若真有人用了flushall/flushdb文件很可能形成覆盖
不用很可能!!
就是会:(他甚至不愿意比较一下文件的大小,直接取决于时间,不过也对!!!,假若是用户确实是需要进行这样的操作呢?那你岂不是违反用户意愿了吗?)

手动触发保存rdb(手动挡)
- 应用情景:
当你突然保存所谓非常重要的数据时,例如保存了1个亿那么我们可以手动保存rdb为了安全起见
- 命令
- save:(坚决不可用,会造成堵塞现象,redis的主线程会停止其他工作专心保存rdb文件,造成堵塞现象,在生成中会造成不可用现象万万不可用)
- BGsave(使用fork,生成一个子进程,这个子进程会来进行保存rdb工作,不会影响到主进程完成保存的功能)
fork:
Redis的fork是指Redis进程复制自身,创建一个与当前Redis实例相同的新进程。这个新进程和原来的Redis实例共享同一个配置文件、数据文件和端口号等资源,但是它们是两个独立的进程,互不影响。
额外命令
- LASTSAVE:获取最后一次保存的时间(
LASTSAVE命令获取的是一个Unix时间戳)
可以使用linux的
date -d @时间戳来获取我们能读懂的时间也可以
redis-cli DATE +%Y-%m-%d %H:%M:%S [lastsave timestamp]
=> "2022-03-14 14:38:05"其中,
[lastsave timestamp]是上一步中通过LASTSAVE命令获取到的Unix时间戳。
rdb的优势与劣势
优势
- rdb文件可以保存到远方服务器,安全性高
- rdb文件读入内存的时间比aof在内存中执行操作的时间快
- 适合大规模数据的恢复(快嘛)
劣势
- 无法及时且无漏缺的保存下每一时刻的redis数据和状态(可能被掐点kill掉进程或者服务器宕机,快照间的数据无法保存)
- rdb在保存的时候需要经常使用fork()来生成一个子进程保存rdb,如果cpu性能不高且redis更新量过大,可能会导致redis停止服务几毫秒甚至1s
rdb修复
万一rdb在写入一条数据时,或者传输时都可能文件出现损坏,可能导致整个rdb文件无法使用
修复命令
linux使用:redis-check-rdb rdb文件地址

保存rdb触发情况
- 达成conf文件设置的保存条件
- flushall/flushdb使用,不过是空的rdb
- shutdown
- 手动档操作:save/bgsave
- 主从复制时,主节点自动触发
关闭使用rdb的机制
- 命令:redis-cli config set save ""
- 配置文件里把 save ""的注释解除
RDB优化配置项详解
配置文件SNAPSHOTTING模块(几乎不用改,默认就可以了)
- stop-writes-on-bgsave-error:字面意思(最好是yes,如果你在乎数据一致性的话)
- rdbcompression:会对快照进行压缩,同时消耗点cpu,默认yes
- rdbchecksum:默认yes,存储快照后会用算法来进行数据校验,同时也会增加10%的性能消耗
- rdb-del-sync-files:在没有持久性的情况下删除复制中使用的RDB文件启用。默认情况下no,此选项是禁用的。(目前不是很理解)
插眼~有不理解的点
rdb-del-sync-files是Redis配置文件中的一个选项,它的作用是在主节点上执行BGSAVE或AOF持久化操作时,删除同步锁文件,以释放磁盘空间。当这个选项设置为yes时,Redis会自动删除同步锁文件;当这个选项设置为no时,Redis不会自动删除同步锁文件。
RDB初步了解的更多相关文章
- NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...
- 【转】 NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索
一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...
- redis做RDB时请求超时case
近期在排查redis做rdb时会有部分请求超时的case.初步推断是我们redisserver上开启了THP(Transparent Huge Pages). 1) Linux本身的 ...
- 使用AOF持久化文件实现还原Redis数据库并得到RDB持久化文件
目录 1 编写本文的初衷 2 具体实施 2.1 Redis持久化概念简介 2.2 获取指定Redis的AOF持久化文件 2.3 把Redis的持久化AOF文件转换为RDB文件 1 编写本文的初衷 因为 ...
- 移动端之Android开发的几种方式的初步体验
目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...
- CSharpGL(29)初步封装Texture和Framebuffer
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...
- Android自定义View初步
经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...
- 初步认识Node 之Node为何物
很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了. Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ...
- redis持久化RDB和AOF
Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...
随机推荐
- Dokcer应用部署(搭建Wordpress网站)
实现多个容器之间的协同,搭建Wordpress网站,要用到3个容器,Wordpress.MariaDB和Nginx 拉取镜像 使用docker pull拉取3个镜像: $ sudo docker pu ...
- 为什么 APISIX Ingress 是比 Emissary-ingress 更好的选择?
本文从可扩展性和服务发现集成等多个维度对比了 APISIX Ingress 与 Emissary-ingress 的性能. 作者:容鑫,API7.ai 云原生技术工程师,Apache APISIX C ...
- 零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程。
零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程. 1.通用文本分类技术UTC介绍 本项目提供基于通用文本分类 UTC(Universal Text C ...
- JVM有意思的图-持续更新
放一些JVM有意思的图 通过一行代码联想JVM:
- Linux redhat7.2 制作u盘问题总结
Linux redhat7.2 制作u盘问题总结 其实呢,觉得本来没必要写一篇关于装系统的文章,毕竟我觉得大多数搞it的人都会,比如win10.ubuntu做个启动盘啥的应该都会,但是说实在的今天 ...
- [人脸活体检测] 论文:Face Anti-Spoofing Using Patch and Depth-based CNNs
Face Anti-Spoofing Using Patch and Depth-based CNNs 这篇文章是人脸防伪领域比较容易理解,适合入手的一篇,主要运用到了两个CNN网络,根据输入图像的细 ...
- Windows 11 启用 Hyper-V 之后网络上传速度异常慢解决方案
最近在开发用的台式机上启用了 Windows 的 Hyper-V 虚拟化功能,利用虚拟机运行了一台 Windows Server 2022 和 一台 Ubuntu Server,为了方便别的机器直接访 ...
- PTA 4-6次总结
(1)前言: 04:这次题目集主要学习了:使用LinkedHashSet删除arraylist中的重复数据,封装,了解Scanner类中nextLine()等方法.String类中split()等方法 ...
- 爬虫之浏览器指纹ja3_hash的更改
浏览器指纹 反爬中会遇到浏览器指纹,它是不会随着你更换 IP 或者 User-Agent 而改变的.并且他们的指纹每次请求也是固定的.只要网站发现某个拥有特定指纹的客户端持续高频率请求网站,它就可以把 ...
- Selenium - 元素操作(2) - 页面滚动条
Selenium - 元素操作 函数滚动 一般元素定位,元素如果不在浏览器的可视位置(即可见只是不在可视位置),会自动把元素滚动到可视位置,但也有不会自己滚动的(比较少). 那我们就可以用seleni ...