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 ...
随机推荐
- 使用Java接入小程序订阅消息!
更新完微信服务号的模板消息之后,我又赶紧把微信小程序的订阅消息给实现了!之前我一直以为微信小程序也是要企业才能申请,没想到小程序个人就能申请. 消息推送平台推送下发[邮件][短信][微信服务号][微信 ...
- javasec(八)jndi注入
JNDI JNDI(全称Java Naming and Directory Interface)是用于目录服务的Java API,它允许Java客户端通过名称发现和查找数据和资源(以Java对象的形式 ...
- 用C++编写一个简单的发布者和订阅者
摘要:节点(Node)是通过 ROS 图进行通信的可执行进程. 本文分享自华为云社区<编写一个简单的发布者和订阅者>,作者: MAVER1CK . @[toc] 参考官方文档:Writin ...
- 超声波、毫米波、ToF激光雷达——在低功耗场景的应用选型
前言: 目前主要的测距方式有:光学测距,超声波和微波雷达测距. 光学测距又可以分为:双目,结构光,ToF.微波雷达,在消费类产品中,常见的是波长在毫米级别的毫米波雷达.超声波应用比较多的是在车载倒车雷 ...
- IDP中的黄金路径究竟是什么?
在云原生时代,开发人员面临着越来越多的工具.技术.思维方式的选择,给他们带来了极大的认知负担和工作量.为了提高开发人员的开发效率与开发体验,一些头部科技公司开始建立自己的内部开发者平台(IDP).在之 ...
- Pytorch-Vanilla Transformer的实现
Vanilla Transformer 注意力提示 我们可以将是否包含自主性提示作为将注意力机制与全连接层或汇聚层区别的标准. 定义外部输入至感官的信息为键-值,键是表征值的非自主提示,关注信 ...
- (数据科学学习手札152)geopandas 0.13版本更新内容一览
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,昨天晚上geopandas正式 ...
- #Powerquery 利用M函数合并文件(CSV、Text、Xlsx)
在日常工作中,我们往往会遇到多个文件需要合并的情况,本文一起探讨一下利用M函数合并文件的案例. 由于需要合并的文件的格式不同,也需要选择不同的M函数来进行合并,本文将分享三个格式的合并案例. 首先介绍 ...
- Sourcetree 提交顺序
总结:一共5个步骤 1.首先获取git主分支的代码. 2.暂存所需要上传的代码. 3.拉取代码(如发生文件冲突先暂不处理). 4.提交代码,然后再次拉取代码(不显示冲突跳下一步).如果还是显示文件冲突 ...
- Prompt工程师指南[应用篇]:Prompt应用、ChatGPT|Midjouney Prompt Engineering
Prompt工程师指南[应用篇]:Prompt应用.ChatGPT|Midjouney Prompt Engineering 1.ChatGPT Prompt Engineering 主题: 与 Ch ...