redis的搭建及应用(二)-redis的持久化策略

Redis的持久化策略

image-20230613000829987

RDB

RDB持久化是指在指定的时间间隔内将redis内存中的数据集快照写入磁盘,实现原理是redis服务在指定的时间间隔内先fork一个子进程,由子进程将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储,生成dump.rdb文件存放在磁盘中。

默认开启,会按照配置的指定时间将内存中的数据快照到磁盘中,创建一个dump.rdb文件,Redis启动时再恢复到内存中。

RDB文件默认存储在: /data 目录中。

root@3f8f9d9b4353:/data# ls -lh
total 4.0K
-rw-r--r--. 1 redis redis 92 Nov 25 13:00 dump.rdb
image-20230613000909200
RDB工作机制
  • Redis提供了RDB持久化能力,这个功能可以将Redis在内存中的数据库状态保持在磁盘里面,避免数据意外丢失。
  • RDB持久化机制可以手动执行,也可以根据服务器配置选定定期执行操作,该功能可以将某一个时间点的数据快照进行保存到一个RDB文件中。
RDB优势和劣势
优势劣势
一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。如果你想保证数据的高可用性,即最大限度的避免数据丢失,那么RDB将不是一个很好的选择。因为系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。
对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。由于RDB是通过fork子进程来协助完成数据持久化工作的,因此,如果当数据集较大时,可能会导致整个服务器停止服务几百毫秒,甚至是1秒钟。
性能最大化。对于Redis的服务进程而言,在开始持久化时,它唯一需要做的只是fork出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行IO操作了。
相比于AOF机制,如果数据集很大,RDB的启动效率会更高。
RDB常用参数
  • SAVE:由主进程进行快照,会阻塞其他请求。

  • BGSAVE:通过fork子进程进行快照,不会阻塞其他请求。

AOF

AOF 持久化功能则提供了一种更为可靠的持久化方式。 每当 Redis 接受到会修改数据集的命令时,就会把命令追加到 AOF 文件里,当你重启 Redis 时,AOF 文件里的命令会被重新执行一次,重建数据。AOF默认是关闭的。

image-20230613000932699

image-20230613000948156

因为AOF采用追加的方式,所以文件会越来越大,针对这个问题,新增了重写机制,就是当日志文件大到一定程度的时候,会fork出一条新进程来遍历进程内存中的数据,每条记录对应一条set语句,写到临时文件中,然后再替换到旧的日志文件(类似rdb的操作方式)。默认触发是当aof文件大小是上次重写后大小的一倍且文件大于64M时触发。

AOF优缺点
优点缺点
默认是每秒fsync一次。这样最多丢失1秒数据在相同的数据集下,AOF文件的大小一般会比RDB文件大。
AOF日志文件是一个纯追加的文件。就算服务器突然Crash,也不会出现日志的定位或者损坏问题在某些fsync策略下,AOF的速度会比RDB慢。通常fsync设置为每秒一次就能获得比较高的性能,而在禁止fsync的情况下速度可以达到RDB的水平。
当AOF文件太大时,Redis会自动在后台进行重写。重写很安全,因为重写是在一个新的文件上进行,同时Redis会继续往旧的文件追加数据。
AOF把操作命令以简单易懂的格式一条接一条的保存在文件里,很容易导出来用于恢复数据。

持久化配置

RDB

前提:

禁止aof: appendonly no,

修改备份时间: save 30 5

在第一个30s内添加数据
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> set b 2
OK
127.0.0.1:6379> set c 3
OK
127.0.0.1:6379> set d 4
OK
127.0.0.1:6379> set e 5
第二个30s内添加数据
127.0.0.1:6379> set xx 1
OK
127.0.0.1:6379> set yy 2
OK
127.0.0.1:6379> set cc 3
终止redis服务
[root@localhost ~]# ps -ef|grep redis-server
polkitd    4465   4443  0 21:27 pts/0    00:00:00 redis-server 0.0.0.0:6379
root       7237 125687  0 21:28 pts/2    00:00:00 grep --color=auto redis-server
[root@localhost ~]# kill -9 4465
重新启动redis

查看数据是否完整。

AOF
混合方式存储

aof-use-rdb-preamble yes

执行rewrite
127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started

日志

29:C 08 Aug 2023 22:00:22.948 * AOF rewrite: 2 MB of memory used by copy-on-write
1:M 08 Aug 2023 22:00:22.975 * Background AOF rewrite terminated with success
1:M 08 Aug 2023 22:00:22.975 * Residual parent diff successfully flushed to the rewritten AOF (0.00 MB)
1:M 08 Aug 2023 22:00:22.975 * Background AOF rewrite finished successfully

image-20230808220403013

重新启动redis
1:M 08 Aug 2023 22:04:30.016 * Module 'bf' loaded from /usr/local/etc/redis/redisbloom.so
1:M 08 Aug 2023 22:04:30.016 * Reading RDB preamble from AOF file...
1:M 08 Aug 2023 22:04:30.016 * Loading RDB produced by version 6.2.6
1:M 08 Aug 2023 22:04:30.016 * RDB age 248 seconds
1:M 08 Aug 2023 22:04:30.016 * RDB memory usage when created 0.85 Mb
1:M 08 Aug 2023 22:04:30.016 * RDB has an AOF tail
1:M 08 Aug 2023 22:04:30.016 # Done loading RDB, keys loaded: 12, keys expired: 0.
1:M 08 Aug 2023 22:04:30.016 * Reading the remaining AOF tail...
1:M 08 Aug 2023 22:04:30.016 * DB loaded from append only file: 0.000 seconds
1:M 08 Aug 2023 22:04:30.016 * Ready to accept connections

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/582677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

istio 示例程序 bookinfo 快速部署

官网 文档位置 相关 yaml 资源下载 Bookinfo 应用分为四个单独的微服务: productpage:这个微服务会调用 details 和 reviews 两个微服务,用来生成页面details:这个微服务中包含了书籍的信息reviews:这个微服务中包含了…

开源元数据治理平台Datahub部署指南(小白版)

1.引言 datahub是做什么的,这里就不展开描述了, 如果想了解更多请自行阅读DataHub官网文档, 这里主要教大家如何一步一步安装然后100%部署完成。一般开源产品的文档都是被大家吐槽的最多的,部署步骤写的非常简单,重要…

oracle与mysql的分析函数(窗口函数)

分析函数定义 在SQL语句中,很多查询语句需要进行GROUP BY分组汇总,但是一旦经过分组,SELECT返回的记录数就会减少。为了保留所有原始行记录,并且仍可以进行分组数据分析,分析函数应运而生。 Oracle 8i 版本开始支持窗…

代码随想录-刷题第三十九天

动态规划理论基础 动态规划的题目由重叠子问题构成,每一个状态一定是由上一个状态推导出来的。这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。 动态规划五步曲 确定dp数组(dp table)以及下标的含义…

Matlab:非线性规划

1、语法: xfmincon(fun,x0,A,b) xfmincon(fun,x0,A,b,Aeq,beq) xfmincon(fun,x0,A,b,Aeq,beq,lb,ub) xfmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) xfmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) xfmincon(problem) [x,fval]fmincon(___) [x,fval,exitflag,…

边缘检测——PidiNet网络训练自己数据集并优化推理测试(详细图文教程)

PiDiNet 是一种用于边缘检测的算法,它提出了一种简单、轻量级但有效的架构。PiDiNet 采用了新 颖的像素差卷积,将传统的边缘检测算子集成到现代 CNN 中流行的卷积运算中,以增强任务性能。 在 BSDS500、NYUD 和 Multicue 上进行了大量的实验…

小米路由器2(R2D) 安装 MIXBOX

1. 先刷开发版 ROM http://www1.miwifi.com/miwifi_download.html 进入上述网页,找到 R2D 点击下载 开发版 ROM 教程 看 下载按钮上边的 “刷机教程” 刷机教程 2. 开启SSH工具 登录自己的小米账号后,里面会显示出 自己的 root密码; 默认…

『JavaScript』JavaScript事件类型详解:全面解析各类用户交互行为

📣读完这篇文章里你能收获到 理解事件驱动编程的基本概念和工作原理掌握JavaScript中常见的事件类型及其应用场合学习如何使用DOM API添加和移除事件监听器探讨事件冒泡、事件捕获和事件委托等高级事件处理技术 文章目录 一、事件处理程序1. HTML事件处理HTML事件处…

Springboot拦截器及统一异常处理

文章目录 一、Java中异常相关概念1、异常类2、异常处理方法3、注意事项4、自定义异常 二、配置全局异常处理1、统一返回体定义2、定义异常处理实现类3、全局异常处理类 三、Springboot拦截器1、定义拦截器2、注册拦截器 四、验证效果 一、Java中异常相关概念 1、异常类 Throw…

Armpro脱壳软件搭建教程附源代码

PHP8.0版本,数据库8.0版本 1.配置注册机文件,打开将arm.zip/res目录下,mt管理器搜索将其全部修改为你自己的域名或者是服务器IP 2.然后建立数据库 数据库账号arm 数据库用户名arm 数据库密码EsZfXY4tD3h2NNA4 3.导入数据库 4.配置Redi…

[每周一更]-(第44期):GIT版本控制之忽略文件

基础概念 在 Git 中,可以通过 .gitignore 文件来指定不需要纳入版本控制的文件或文件夹,这些被忽略的文件或文件夹不会被提交到仓库中。 在项目根目录下创建一个名为 .gitignore 的文件,并在其中列出需要忽略的文件或文件夹。一些常见的示例…

SASS循环

<template><div><button class"btn type-1">默认按钮</button><button class"type-2">主要按钮</button><button class"type-3">成功按钮</button><button class"type-4">信息…

企业数据可视化-亿发数据化管理平台提供商,实现一站式数字化运营

近些年来&#xff0c;国内企业数据化管理升级进程持续加速&#xff0c;以物联网建设、人工智能、大数据和5G网络等新技术的发展&#xff0c;推动了数字经济的蓬勃发展&#xff0c;成为维持经济持续稳定增长的重要引擎。如今许多国内中小型企业纷纷摒弃传统管理模式&#xff0c;…

[卷积神经网络]FCOS--仅使用卷积的Anchor Free目标检测

项目源码&#xff1a; FCOShttps://github.com/tianzhi0549/FCOS/ 一、概述 作为一种Anchor Free的目标检测网络&#xff0c;FCOS并不依赖锚框&#xff0c;这点类似于YOLOx和CenterNet&#xff0c;但CenterNet的思路是寻找目标的中心点&#xff0c;而FCOS则是寻找每个像素点&…

css中sprite(css精灵)是什么,有什么优缺点

概念 将多个小图片拼接到一个图片中 。通过 background-position 和元素尺寸调节需要显示的背景图案。 优点 减少 HTTP 请求数&#xff0c;极大地提高页面加载速度 增加图片信息重复度&#xff0c;提高压缩比&#xff0c;减少图片大小 更换⻛格方便&#xff0c; 只需在一张或…

六、Redis 分布式系统

六、Redis 分布式系统 六、Redis 分布式系统6.1 数据分区算法6.1.1 顺序分区6.1.2 哈希分区 6.2 系统搭建与运行6.2.1 系统搭建6.2.2 系统启动与关闭 6.3 集群操作6.3.1 连接集群6.3.2 写入数据6.3.3 集群查询6.3.4 故障转移6.3.5 集群扩容6.3.6 集群收缩 6.4 分布式系统的限制…

mysql保姆安装教程

一.下载install文件 1.进入Mysql官网&#xff0c;点击下载 2.选择MySQL Installer for Windows 3.推荐选择第二个安装包 4.不登陆&#xff0c;开始下载 5.等待下载完成 二.安装前的配置 通过电脑“设置”&#xff0c;检查电脑是否包含中文名&#xff0c;如果包含请重命名 …

紫光展锐5G扬帆出海 | 东南亚成为5G新热土

东南亚是一块充满活力和潜力的市场&#xff0c;这里人口基数大、年轻消费群体占比高&#xff0c;电子市场在过去几年显著增长。 增速“狂飙”的东南亚手游 近年来&#xff0c;东南亚手游下载量逐年增长&#xff0c;2023 年第一季度下载量突破 21 亿次&#xff0c;贡献了全球近…

2023年12月27日学习记录_加入噪声

目录 1、今日计划学习内容2、今日学习内容1、add noise to audio clipssignal to noise ratio(SNR)加入 additive white gaussian noise(AWGN)加入 real world noises 2、使用kaggel上的一个小demo&#xff1a;CNN模型运行时出现的问题调整采样率时出现bug 3、明确90dB下能否声…

【SD】IP-Adapter 进阶 - 同款人物【2】

测试模型&#xff1a;###最爱的模型\flat2DAnimerge_v30_2.safetensors [b2c93e7a89] 原图&#xff1a; 加入 control1 [IP-Adapter] 加入 control 2 [OpenPose] 通过openpose骨骼图修改人物动作。 加入 control 3 lineart 加入cotrol3 …