Redis再战之持久化 rdb 和 aof《六》

【Bug—eNSP】华为eNsp路由器设备启动一直是0解决方案! 软件,添加AR设备时启动异常,最开始错误代码是40,最后通过重新安装,又出现了新的问题,启动AR设备一直是0,而且界面卡住。打开控制面板→网络和Internet→网络和共享中心→更改适配器设置,然后再按以下步骤一次操作。重新打开eNsp,然后选择注册设备,注册成功后重新启动一下,这个时候AR设备就可以正常启动啦。打开eNsp→菜单→工具→选项→服务器设置,写入刚刚写的IP地址就可以了。打开VirtualBox,将左侧的文件全部删除(点击删除所有文件) 阅读详情

持久化

  • redis在作为缓存和数据库的区别在于,缓存一般都是有期限的热数据,非全量数据,数据可以丢失,追求的是急速。
  • redis作为数据库的时候,数据是绝对不能丢的。数据存在内存当中就会产生 掉电易失 的问题。所以redis作为数据库,追求的是 速度 + 持久性。

持久化技术
快照 / 副本
日志

父进程与子进程的关系

linux管道命令

  • 将前一个命令的输出作为后一个命令的输入
  • 需要注意,管道符前的指令必须有正确的输出,管道符后必须可以处理前面的正确输出结果,不能处理前面的错误输出
  • 管道会触发两个子进程执行”|”两边的程序,重定向是在一个进程内执行
    linux中,export的环境变量,子进程的修改不会破坏父进程,父进程的修改也不会破坏子进程。

redis有两种持久化数据的方案,分别为RDB(Redis DataBase)和AOF(Append Only File)

RDB

  • RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。RDB具有时点性,定点保存数据。
  • 在新版本里也可以使用bgsave指令生成dump.rdb文件。
  • 利用fork()函数创造子进程,类似于Copy-on-write的操作,父进程进行修改,子进程负责持久化,本质:产生新数据进行写入新的内存,然后移动父进程的指针,子进程可以看作虚拟内存,指针指向相应的数据内存
  • 在这里插入图片描述
  • fork()调用创建的子进程可以看到父进程的数据,copy on write机制让父 / 子进程数据隔离。
  • 在这里插入图片描述

rdb的触发

rdb的触发分为两种

  • 手动触发:
    手动触发又分为save 命令阻塞触发 和bgsave 命令非阻塞触发。
    save会触发前台阻塞。主要应用在 服务器 关机维护。
    bgsave会触发fork()命令创建子进程异步写入磁盘。
  • 配置文件设置规则触发:
    在conf配置文件中找到 SNAPSHOTTING 模块,

save 900 1
save 300 10
save 60 10000

这里的save表示的是触发bgsave命令,分别代表 900 秒 操作数达到1次,300 秒操作数达到 10 次,60 秒操作数达到 10000 次 触发bgsave。

关于rdb在conf文件中的一切其他配置:

rdbcompression yes:是否开启压缩。
rdbchecksum yes:开启在rdb文件后面写一个校验位。
dbfilename dump.rdb:rdb文件的名称。
dir /var/lib/redis/6379:rdb文件所在的目录。

rdb的优点与弊端

缺点:

  • 不支持拉链,只能有一个dump.rdb文件,需要运维人员定制定时策略,比如每天把最后一个dump.rdb重命名或者迁移到别的机器上并设置日期时间。
  • 丢失数据相对多一些,时点与时点之间数据容易丢失。比如8点得到一个rdb,9点要落一个rdb,突然服务器挂了。

优点:

  • 类似于java的序列化,直接数据状态二进制,回复速度相对快。
    在这里插入图片描述

AOF(ppend only file)

  • AOF :Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。
  • Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
  • 并且在redis中,aof和rdb可以同时开启,但是如果开启了aof就只会使用aof恢复数据。因为aof恢复数据的完整性高。
  • 在4.0版本以后aof中包含rdb全量,增加记录新的写操作。这么做的好处就是 写操作日志 相对少一些, 执行aof文件恢复数据时,先使用rdb进行恢复,再使用写操作日志,恢复速度相对快一些。

重写

  • redis4.0以前:可以触发rewrite机制,就是删除抵消的命令和整合重复的命令。

例1 :set k1 1,set k1 2,set k1 4这三条命令就可以抵消为set k1 4一条命令,因为set k1 1,set k1 2属于废弃数据,k1的最终值为4。
例2:lpush k1 1,lpush k1 1,lpush k1 1这三条命令可以整合成lpush k1 1 1 1,这样就节省了2个push单次所占用的空间。

最终得到的还是一个纯指令的日志文件。最终得到的还是一个纯指令的日志文件。最终得到的还是一个纯指令的日志文件。

  • redis4.0以后:还是触发rewrite机制,不同的是用rdb的方式写入aof文件里面,之后会把增量的指令日志append到aof中。
    利用了rdb的快的特点,同时还利用的append丢失少的特点。
    最终得到是aof混合体最终得到是aof混合体最终得到是aof混合体
    conf文件中aof的配置:

AOF参数配置

APPEND ONLY MODE模块。

appendonly no:aof为默认关闭状态,我们可以更改为appendonly yes开启。
appendfilename "appendonly.aof":默认文件名称。
appendfsync everysec:IO的级别默认为每秒发生一次flush。最多丢失一个buffer的数据。
appendfsync always:IO的级别为每次写都会发生flush。
appendfsync no:IO的级别为redis不主动flush,等待kernel的buffer满了自动flush。最多就是一个buffer的数据。
no-appendfsync-on-rewrite no:在发生rewrite或rdb的时候,不主动调用flush()争抢IO。数据敏感性高就开启为yes。
auto-aof-rewrite-percentage 100:最后一次重写后的体积大小所占比例100%,就会从64变为128。
auto-aof-rewrite-min-size 64mb:aof文件到达64m的时候,自动触发重写。
Windows配置L2TP/IPsec连接 Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。 阅读详情

相关推荐

基于单片机的室内空气质量监控系统设计

摘 要 I Abstract II 引 言 1 1 控制系统设计 3 1.1 方案选择 3 1.2 系统控制原理 4 2系统硬件设计 5 2.1 单片机的选择与设计 5 2.2 温湿度模块设计 6 2.3 甲醛采集模块设计 8 2.4 显示器模块设计 9 2.5 按键模块设计 10 2.6 报警模块设计 11 2.7 加湿及风扇模块设计 11 3系统软件设计 13 3.1 总流程方案设计 13 3.2 温湿度获取的软件设计 14 3.3 液晶屏LCD1602的软件设计 15 4系统调试 13 4

Q_1928499906的博客 2698

Redis数据库操作详解(Python描述)

edis是一款开源的内存数据库,支持键值对存储、发布订阅、持久化等功能。

陈子青的博客 1712

【5G全网建设】Option3X和Option2模式建安市、兴城市和四水市核心网、承载网网络设计与部署

拓扑规划: Option 3X网络拓扑图规划 Option 2网络拓扑图规划 设备部署: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 数据配置: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 业务调试

weixin_67183034的博客 8850

103. Python语言 的 项目前导(上) 之 Redis 第四章 :Redis 持久化 —— RDB

Python语言 的 项目前导(上) 之 Redis 第章 :Redis

sinat_38761218的博客 337

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 568

OKCC呼叫中心部署实战指南:从零搭建高效外呼系统

本文提供OKCC呼叫中心系统的完整部署实战指南,从服务器选型、操作系统准备到详细安装步骤和性能优化,帮助企业从零搭建高效外呼系统。重点介绍FreeSWITCH核心组件的安装配置技巧,以及常见问题排查方法,助力企业提升客户服务效率。

weixin_29275257的博客 163

使用rdb文件进行redis数据迁移--python脚本

查找了一些redis迁移的方法,一般做法就是 1. 从源数据库把rdb文件保存,然后传到新的主机上,启动新的redis即可 2. 把新的redis当做源数据库的slave,同步数据 今天开发提了一个测试需求,要求把一个备份的rdb文件数据保存到另一个redis(110主机)的15号库中(默认的是0),这样就不会影响redis(110主机)原有的数据。我在网上找了一个python,实现了这个功

zhangpfly的博客 2886

麒麟V10(arm)配置本地离线yum源

麒麟V10(arm)配置本地离线yum源

myfm2java的博客 7884

spring boot微服务架构mybatis多数据源切换

1,先看个目录结构图可以看到,我把要设置的配置文件都放在了config文件夹下面2,Application.java是程序启动项,里面必须设置3,application.properties是多数据源切换的配置文件好,接下来开始进行多数据源的切换!!!一、先看看application.properties文件吧,配置多数据源:dbType用的超高可用的com.zaxxer.hikari.Hikar...

Xgx120413的专栏 5135

C#实现网络寻路(附完整源码)

C#实现网络寻路(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 420

把 LangGraph 当“工作流引擎”用:与传统 BPM 的差异与融合策略

首先,我们来回顾一下有限状态机(FSM)的基本定义——一个 FSM 可以用一个五元组MQΣδq0FMQΣδq0​FQQQ有限状态集合,包含 FSM 所有可能的状态;Σ\SigmaΣ有限输入字母表,包含 FSM 所有可能的输入;δ\deltaδ状态转移函数,定义了 FSM 从当前状态q∈Qq \in Qq∈Q接收输入σ∈Σσ∈Σ后,转移到的下一个状态q′∈Qq' \in Qq′∈Q,即δQ×Σ→QδQ×Σ→Q。

AI 原生应用开发的博客 227

redis的持久化

Redis的持久化 1. redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。 2. redis持久化机制: 1. RDB:默认方式,不需要进行配置,默认就使用这种机制 * 在一定的间隔时间中,检测key的变化情况,然后持久化数据 1. 编辑redis.windwos.conf文件 # 900秒内至少有1个键改变 save 900 1 # 300秒内至少有10个键改变

python_studying的博客 302

CarSim - 仿真汽车驾驶行为的完整源代码及描述

以上是多年收集的稀有软件CarSim的源代码和描述,借助CarSim提供的功能,用户可以准确地模拟和研究汽车的驾驶行为,为汽车设计、驾驶辅助系统等领域提供有价值的支持。是一款用于模拟汽车驾驶行为的稀有软件,它经过多年的收集和开发,提供了一套完整的源代码和相应的描述,能够准确地模拟真实世界中的汽车运动和操控。CarSim的源代码采用现代化的。

weixin_50547796的博客 292

Redis持久化:RDB和AOF

一、为什么需要持久化? Redis对数据的操作都是基于内存的,当遇到了进程退出、服务器宕机等意外情况,如果没有持久化机制,那么Redis中的数据将会丢失无法恢复。有了持久化机制,Redis在下次重启时可以利用之前持久化的文件进行数据恢复。Redis支持的两种持久化机制: RDB:把当前数据生成快照保存在硬盘上。 AOF:记录每次对数据的操作到硬盘上。 二、RDB持久化 在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存里。 RDB(Redis DataBase)持久化是把当前R

????????️的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Redis持久化之RDB和AOF

我们知道Redis是内存数据库,数据都加载在内存中,但是数据也是需要持久化到磁盘中的,如果不保存到磁盘中,那万一Redis服务器重启了,那数据不就丢了吗?所以持久化就是将内存中的数据保存到磁盘里众所周知,Redis的持久化有2种方式,分别是RDB和AOF,下面就讲下这两种方式的区别。

qq_40853117的博客 3210

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Redis的持久化RDB和AOF详解

Redis 是基于内存的数据库,为了防止数据丢失,需要将内存中的数据持久化到磁盘。持久化机制主要有RDB和AOF两种。RDB 持久化是将 Redis 在某一时刻的内存数据快照保存到磁盘文件中;AOF 持久化是将 Redis 执行的写命令追加到文件末尾。

1加1等于的博客 1499

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Redis中两种持久化机制RDB和AOF

删除、新增key都会记录在aof文件中,当redis重启后,会将aof文件中的命令还原到redis中,从而保证数据的持久化,我们配置的aof文件大小为64m,默认就是64m,当文件超过64m时,redis有自己的压缩策略,会把aof中的删除命令全部删掉,保证文件的大小,也可以根据实际生产把文件大小给大。2.子进程将数据集写入到一个临时的rdb文件中,当子进程完成对临时rdb文件的写入时,redis用新的rdb文件替换原来旧的rdb文件,并将旧的rdb文件删除。

11 1625

Redis: 持久化之RDB和AOF

Redis 有一个高质量的课题:数据安全性与数据可靠性Redis 是一个内存型数据库,数据大部分都是存在内存里面当信息在内存中流通时,Redis 节点突然就故障挂掉当重新启动的时候,内存中的数据肯定是全部丢失了如果在这种情况下,Redis 提供了对应的持久化方案,它有两种持久化方案RDB和AOF可以把内存中的数据保存到磁盘,避免数据的流失关于RDB,我们需要了解到什么是持久化什么是快照RDB的工作原理,包括它的优点和缺点关于AOF,需要知道为什么需要有AOF。

Wang的专栏 1440

【Redis】Redis持久化机制,RDB和AOF

Redis 的持久化机制和是保证数据不丢失的核心功能,但两者的实现原理、性能开销和适用场景差异显著。把一次性保存成一个,默认文件名dump.rdb。

2301_78725423的博客 1273

Redis持久化(六)-RDB+AOF混合持久化

RDB-AOF混合持久化RDB+AOF同时使用RDB-AOF混合持久化 RDB+AOF同时使用 同时使用RDB持久化和AOF持久化是可行的,只要注意以下问题即可: 同时使用两种持久化功能需要耗费大量系统资源,系统的硬件必须能够支撑运行这两种功能所需的资源消耗,否则会给系统性能带来影响 Redis服务器在启动时,会优先使用AOF文件进行数据恢复,只有在没有检测到AOF文件时,才会考虑寻找并使用RDB文件进行数据恢复 当Redis服务器正在后台生成新的RDB文件时,如果有用户向服务器发送BGREWRITEAO

星光之子的博客 4876

【Redis】持久化机制--RDB和AOF

文章介绍了Redis的两种持久化机制以及其详细的流程、细节问题。

关关的博客 2659

Redis持久化RDB和AOF区别

RDB RDB是Redis内存到硬盘的快照,用于redis持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久化存储数据,也可以作为一种复制媒介。 触发机制--主要三种方式 save 同步命令(会阻塞redis) bgsave 异步命令(fork) 自动 #关闭自动保存配置#save 900 1 #900秒 改了一次就自动生成RDB文件#save 300 10 #300秒修改了1

java_atguigu的博客 4639

Redis 持久化之 RDB & AOF

Redis持久化知识,看这一篇就够了

zwl2220943286的博客 2124

Redis 持久化机制 RDB 和 AOF 区别

Redis 是一个开源的内存数据结构存储系统,广泛应用于缓存、会话存储、实时分析等场景。虽然 Redis 本质上是内存数据库,但它支持持久化机制,将数据保存在磁盘中以防止数据丢失。在 Redis 中,主要有两种持久化机制:RDB(Redis 数据库快照)和 AOF(追加文件)。这两种持久化机制各有优缺点,适用于不同的使用场...

Java_fenxiang的博客 2035

【Redis 持久化:RDB和AOF】

一文带你知道RDB和AOF原理,从更深层次了解机制。

m0_68872612的博客 1131

Redis的持久化 AOF和RDB

Redis的持久化 前言:此文章是学习Redis 核心技术与实战时做的学习笔记,仅供学习和参考。 Redis如何避免数据丢失? Redis用作缓存时,数据存储在内存中。一旦服务器宕机,内存中的数据就会全部丢失。 一个解决方案是从数据库中恢复数据,但是存在两个问题:1、数据库中的数据是存储在硬盘中的,存取速度相对于内存来说太慢,大大影响了Redis的性能;2、频繁读取数据会给数据库增加压力; 因此Redis拥有自己的持久化机制,即 AOF(Append Only File)日志和 RDB 快照。 AOF日志

Qiuyuguohou的博客 3199
上一篇: redis再战之布隆过滤器《五》
下一篇: Redis再战之AKF、CAP、哨兵机制《七》
漂吧
博客等级 码龄8年 15粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值