redis持久化(万一redis突然宕机了咋办?数据会丢失吗?)

【技术警报】Redis故障启示录:当主节点宕机,如何避免数据“雪崩”? 在高并发的互联网世界中,Redis作为一个高性能的键值存储系统,常被用于缓存、消息队列等场景,为应用提速增效。然而,技术的光芒背后也隐藏着潜在的危机——今天,我们就来探讨一个真实发生的案例:Redis主节点意外宕机后,由于一系列配置与监控的疏漏,导致数据全部丢失,进而引发服务“雪崩”。这不仅是一个警示,更是一次深刻的技术反思。 阅读详情

回答标题问题:不会丢失。

先来说说什么是数据持久化,为啥要进行数据持久化。

第一点:什么是数据持久化。

       在缓存服务中,我们都了解,他说一种高速缓冲,存放于内存的一种服务。那么内存中的东西生命周期是什么呢?通常来说,当机器关闭的时候,内存中的数据都会清空,都不会存储,那么下次开机的时候,不会出现之前的数据。那么为了防止这种情况突然发生,,我们通常都会对缓存做持久化操作。这里以redis为例

Redis提供了2中不同形式的持久化类型:

1.rdb(redis database)

原理:将redis在内存的数据库中的数据定时dump到硬盘上,实现rdb持久化。

在rdb持久化过程中,是在规定的时间间隔之内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入到临时文件中,写入成功后,再替换之前的文件,再用二进制压缩存储。那么此操作是一种间隔存储的,类似一种快照形式。

在整个的持久化过程中,主进程是不会进行任何的IO操作的,这就确保了极高的性能,如果我们需要大规模的数据的恢复,且对于数据恢复的完整性不是非常敏感,那么rdb方式要比aof方式更加高效。但是rdb的缺点就是最后一次的持久化操作很有可能丢失,那么一发生丢失就是整个数据丢失,下次备份还是需要重头开始。

那么从上面我们就可以总结出rdb的一个优缺点了:

优点:相较aof而言:rdb是比较磁盘空间的,他只是保持更新整个redis缓存中所有的数据的一个完整性。即,相当于在一定时间间隔内对redis缓存数据的一个持久化,采取一种临时文件替换上一层保存的文件,比较节省空间的。

然后,rdb是针对数据的角度进行一个持久化的,那么当然我们进行反向导入的时候,这个时候,rdb是高效的。但是弊端也相对明显,就是在每次fork redis中全数据的时候,会因数据量的增加而增加性能的消耗。

周期进行备份,但是如果突然停止,会丢失最后一次快照的修改。临时文件会丢失。

2.aof(append of file)

原理:将redis的操作日志以追加的形式写入到文件中。

通过只增不改,不删方式。Aof持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,文本的形式记录,可以打开文件看到详细的操作记录。

那么此种操作就一种日志形式来进行一个记录各种更新操作。会对每一次操作的命令进行一个记录,那么在redis服务进行一个启动的时候,会读取日志中的命令,对redis中的数据进行一个恢复。

所以可以看出aof是一个粒度比较小的操作。精确到每一条操作。且每条操作的前后都不影响。

那么这个时候也可以对比出aof的一个优点所在了:

备份机制更加成熟稳健,对每一条操作都会有所记录,那么就会大大的降低丢失率。

这是个日志形式的备份,那么我们就可以直接读持久化文件。可以对其人为的操作。

但是就是因为他的粒度细致,并且只会增加数据,不会修改数据,那么这个时候会占用更多的磁盘空间。且正因为日志,那么恢复的时候,也要从日志中读取出数据信息,进行一个反操作。那么粒度细,也会造成一定的性能压力,每次变更都会新增日志记录。官方也做出了一些声明:存在个别bug,会造成不能恢复现象。

Redis宕机,如何避免数据丢失和快速恢复? 宕机后,Redis如何实现快速恢复 阅读详情

相关推荐

【redis】正确关闭redis 不然会数据丢失

考虑到Redis有可能正在将内存中的数据同步到硬盘中,强行终止Redis进程可能导致数据丢失。redis可以妥善的处理 SIGTERM 信号,所以使用 kill redis进程PID 也可以正常结束redis,效果和发送SHUTDOWN命令一样。当redis收到SHUTDOWN命令后,会先断开所有客户端的链接,然后根据配置执行持久化,最后完成推迟,

九师兄 781

Redis分布式缓存(二)| 主从架构搭建、全量/增量同步原理、主从同步优化

Redis主从架构 1.搭建主从架构 1.1.集群结构 1.2.准备实例和配置 1.3.启动 1.4.停止 1.5.开启主从关系 1.6.测试 2.主从数据同步原理 2.1.全量同步 2.2.增量同步 2.3.repl_backlog原理 3.主从同步优化

慌途L 1944

300个fpga练手项目推荐

• 按键设置BPM,LED和蜂鸣器同步打拍(支持4/4、3/4拍)• 例:先实现DDR3控制器(基础),再构建视频处理流水线(集成)◦ 驱动小型e-Paper显示日期/时间(SPI接口,静态刷新)◦ 音频输入经FFT后,用LED柱状显示频率能量(8频段简化)◦ 通过HC-05模块接收手机指令,控制电机方向(前进/后退)• 随机点亮LED,用按钮响应,数码管显示反应时间(毫秒级)• 8个LED旋转闪烁,按钮停止后显示中奖编号(带减速动画)• 用4方向按键输入手势(如→→←↑),正确后点亮绿色LED。

qq_62784677的博客 7644

redis宕机导致数据丢失的重大生产事故总结

这周五周六经历一次严重的redis宕机导致数据丢失的严重生产数据,并导致了10小时的停服。算是工作以来经历的最大生产事故,今天做一个全面总结,也算是吃一堑长一智。

qq_30095631的博客 1629

电动汽车欧标直流充电标准解析

电动汽车和电动汽车充电市场是动态发展的,欧洲也正在努力部署基础设施,以支持欧洲快速增长和多样化的电动汽车充电需求。

网络安全的研究者、新能源行业的追求者 7620

学习海康VisionMaster之路径提取

这里也需要注意下,这里有两种模式,在运行参数的这一栏有“等距离取点”和“查找边缘点”两个检测模式,说实话,那个等距离取点我也没搞懂有什么用,我拿了OK和NG的图片去对比,好像没有什么实际用处,无法检测(不知道有没有小伙伴知道这个模式到底是怎么用的!2:应用场景:典型的场景是点胶检测,判断胶路质量,有没有断胶等,一开始这胶路检测,真的是难倒我了,特别是不规则图像如何检测,学习了这个算子后,思路一下子打开了,原来还可以这么搞!四:实测:上述设定好参数,开始实际测量看看效果,不同的检测模式下的检测效果。

yuhouxiyang的专栏 1485

Redis 缓存数据库

数据在集群模式中是分开存储的,那么节点之间想要知道其他节点的状态信息,包括当前集群状态、集群中各节点负责的哈希槽、集群中各节点的master-slave状态、集群中各节点的存活状态等是通过建立TCP连接,使用gossip协议来进行集群信息传播。而且,哨兵模式没有解决master写数据的压力。哨兵模式是基于主从模式的,哨兵(sentinel)模式是为了解决主从模式中的问题而提出来,既当 master 节点宕机时,由于无法选择哪一个 slave 节点当 master 节点,导致 Redis 无法保证高可用。

BlueProtocolBlog 1640

电商项目功能简述

1.电商行业的技术特点 1.技术性 2.技术范围广 3.分布式 4.高并发,集群,负载均衡,高可用 5.海量数据 6.业务复杂 7.系统安全 2.电商行业的模式 B2B:企业到企业,商家到商家.代表:阿里巴巴 B2C:商家到客户.代表:京东.淘宝商城 C2C:客户到客户.淘宝集市 O2O:线上到线下 3.B2C电商系统架构功能模块 4.B2C电商系统架构功能描述 后台管理系统:管理商品、订单、类...

weixin_45116848的博客 9744

宕机了,Redis如何避免数据丢失?

1:、fork⼦进程,fork这个瞬间⼀定是会阻塞主线程的(注意,fork时并不会⼀次性拷⻉所有内存数据给⼦进程),fork采⽤操作系统提供的写实复制(Copy On Write)机制,就是为了避免⼀次性拷⻉⼤量内存数据给⼦进程造成的⻓时间阻塞问题,但fork⼦进程需要拷⻉进程必要的数据结构,其中有⼀项就是拷⻉内存⻚表(虚拟内存和物理内存的映射索引表),这个拷⻉过程会消耗⼤量CPU资源,拷⻉完成之前整个进程是会阻塞的,阻塞时间取决于整个实例的内存⼤⼩,实例越⼤,内存⻚表越⼤,fork阻塞时间越久。

m0_47704296的博客 557

告别裸机:在FreeRTOS上为STM32移植SOEM EtherCAT主站的思路与实战

本文详细介绍了在FreeRTOS环境下为STM32移植SOEM EtherCAT主站的工程实践。通过重构任务调度模型、优化内存管理和中断响应,成功将通信周期抖动控制在±100ns以内,满足工业控制系统的严苛实时性要求。文章包含完整的移植策略、性能优化方法和实测数据,为开发者提供了一套可靠的EtherCAT主站解决方案。

weixin_30342363的博客 388

LTspice 导入 PSpice 模型实战指南 --(解决语法兼容性与模型优化问题)

本文提供了将PSpice模型成功导入LTspice的详细实战指南。针对两者间的语法兼容性问题,文章以TI UCC23513为例,逐步讲解模型获取、符号创建、常见语法错误修改及仿真验证方法,并分享了模型优化与个人库管理技巧,帮助用户高效解决模型导入与仿真难题。

weixin_28278377的博客 823

redis突然宕机数据会丢失吗

文章目录断电为什么数据会丢失redis的持久化机制rdb机制RDB 优缺点在生成 RDB 期间,Redis 可以同时处理写请求么?aof机制aof的“写后日志”aof的重写机制混合持久化机制总结 之前看到有人面试时问了这个问题,这里记录一下自己的思考和总结,加整理之前记录的一些笔记。 断电为什么数据会丢失 首先要知道Redis是一个内存数据库,平时在读写Redis时比如set get命令都是直接对内存进行操作的,这也是redis为什么比mysql等关系型数据库快的原因,内存中的数据我们知道关机后都是会丢失

qq_41358574的博客 8935

黑猫带你学eMMC协议第29篇:eMMC设备锁详解(CMD42)

通过cmd42命令,可以给emmc设置密码,并且锁定emmc。这时候就不能对emmc的user分区进行读写数据访问了。设备锁在V4.3版本后的emmc里面,就只能保护user area分区,因此,被锁定的emmc,依旧可以正常访问BOOT\RPMB\GPP分区。emmc内部有128 bit PWD寄存器,用来存放密码,以及有8bit PWD_LEN寄存器,用来密码长度。这两个寄存器非易失性,掉电也不会丢失。

黑猫奥利奥的博客 3240

宕机了,Redis 如何避免数据丢失?

如果有人问你:"你会把 Redis 用在什么业务场景下?我想你大概率会说:"我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。

sjkflw121150的博客 879

【Network Management】DCM模块唤醒网络是主动唤醒还是被动唤醒

DCM模块唤醒网络是主动唤醒还是被动唤醒

qq_36056498的博客 1540

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

解决Redis持久化数据丢失

解决Redis持久化数据丢失

lhc66666的博客 5338

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【基础篇】AOF日志:宕机了,Redis如何避免数据丢失?

如果有人问你:“你会把 Redis 用在什么业务场景下?”我想你大概率会说:“我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。我们很容易想到的一个解决方案是,从后端数据库恢复这些数据,但这种方式存在两个问题:一是,需要频繁访问数据库,会给数据库带来巨大的压力;二是,这些数据是从慢速数据库中读取出来的,性能肯定比不上从 Redis 中读取,导致使用这些数据的应用程序响应变慢。

shenyongsi的博客 2646

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Redis持久化

Redis持久化

m0_69044845的博客 5779

Redis持久化之AOF日志:宕机了,Redis如何避免数据丢失?

Redis持久化之AOF日志:宕机了,Redis如何避免数据丢失?AOF 日志是如何实现的?三种写回策略日志文件太大了怎么办AOF 重写会阻塞主线程吗 AOF 日志是如何实现的? 我们比较熟悉的是数据库的写前日志(Write Ahead Log, WAL),也就是说,在实际写数据前,先把修改的数据记到日志文件中,以便故障时进行恢复。不过,AOF 日志正好相反,它是写后日志,“写后”的意思是 Redis 是先执行命令,把数据写入内存,然后才记录日志。 那 AOF 为什么要先执行命令再记日志呢? 传统数据库的

香农三定律的博客 1870

Redis宕机了,如何恢复数据?

Rdb、Aof两种持久化机制各有优缺点,需要根据自己的实际业务来衡量,到底使用哪种机制,最能满足当下业务,我的建议数据不能丢失时,内存快照和 AOF 的混合使用是一个很好的选择;如果允许分钟级别的数据丢失,可以只使用 RDB;如果只用 AOF,优先使用 everysec 的配置选项,因为它在可靠性和性能之间取了一个平衡。

tangjieqing的博客 829

阿里二面,redis宕机了,如何快速恢复数据

Rdb、Aof两种持久化机制各有优缺点,需要根据自己的实际业务来衡量,到底使用哪种机制,最能满足当下业务,我的建议数据不能丢失时,内存快照和 AOF 的混合使用是一个很好的选择;如果允许分钟级别的数据丢失,可以只使用 RDB;如果只用 AOF,优先使用 everysec 的配置选项,因为它在可靠性和性能之间取了一个平衡。

qq_33228984的博客 1580

【面试常问】Redis的持久化机制是什么?各自的优缺点?

Redis在我们日常开发中是必不可少的,但是有可能会造成数据的丢失,因此就有了持久化机制,而 Redis的持久化机制也是面试中的高频问题,决定整理一下;如有错误还请个位指正!

Willing卡卡的博客 1万+
上一篇: yii2-redis 扩展详解
下一篇: YII2框架中日志的配置与使用方法实例分析
firstcode666
博客等级 码龄5年 53粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值