Redis的持久化机制(2)

news2024/11/14 14:55:34

AOF  以独立日志的方式记录每次写命令(读操作不记录),重启时再重新执行AOF文件中的命令来恢复数据。AOF会先把命令追加在AOF缓冲区,然后根据对应策略写入硬盘(appendfsync),它只许追加文件但不可以改写文件

在redis.conf⽂件中appendfsync参数用来设置AOF文件被写入的策略:

always:表示只要缓冲区中数据发生更改,则就将该数据写入到AOF文件中,效率很低,不建议配置

everysec:每秒执行一次把缓冲区中数据写入AOF文件中(Redis默认)。如果一秒内出现宕机,可能会导致 丢失这一秒数据。通常选择 everysec ,兼顾安全性和效率

no,不做任何策略配置,将策略的配置交给操作系统,一般操作系统是等待缓冲区被占完之后,将数据写入AOF文件中。速度最快,但是不太安全

开启AOF:      vim /opt/redis-5.0.4/redis.conf

将699行appendonly的no改为yes

 重新启动Redis服务:  redis-server /opt/redis-5.0.4/redis.conf

                                  /usr/local/bin/redis-cli

随便创建键后然后清空库,之后退出

[root@localhost redis-5.0.4]# redis-server /opt/redis-5.0.4/redis.conf
15489:C 01 Jul 2023 19:05:32.380 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
15489:C 01 Jul 2023 19:05:32.380 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=15489, just started
15489:C 01 Jul 2023 19:05:32.380 # Configuration loaded
[root@localhost redis-5.0.4]# /usr/local/bin/redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> set k 1
OK
127.0.0.1:6379> set k 2
OK
127.0.0.1:6379> set k3 413
OK
127.0.0.1:6379> set k5 111
OK
127.0.0.1:6379> set k6 123
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> shutdown
not connected> exit

切换到 /usr/local/bin目录下: cd /usr/local/bin

可以看到自动生成了appendonly.aof文件夹,然后编辑该文件夹将最后情况库的命令删除重启redis后查看就可以看到我们刚刚随便写的数据都在

 

 AOF优缺点

优点:

1.安全性相对RDB方式高很多

2.AOF文件是一个只进行追加的日志文件,所以不需要写入seek,即使由于某些原因(磁盘空间已满,写的过程中宕 机等等)未执行完整的写入命令,你也可使用redis-check-aof工具修复这些问题

3.AOF文件的格式可读性较强,这也为使用者提供了更灵活的处理方式。例如,如果我们不小心错用了FLUSHALL命 令,在重写还没进行时,我们可以手工将最后的FLUSHALL命令去掉,然后再使用AOF来恢复数据

缺点:

1.对于相同的数据集来说,AOF文件的体积通常要大于RDB文件的体积

2.效率相对RDB方式低很多

3.根据所使用的fsync策略,AOF的速度可能会慢于RDB。 在一般情况下,每秒fsync的性能依然非常高,而关闭fsync可以让AOF的速度和RDB一样快, 即使在高负荷之下也是如此。不过在处理巨大的写入载入时,RDB可以提供更有保证的最大延迟时间(latency)

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

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

相关文章

【vue:淘宝rem自适应 】

vue:淘宝rem自适应 1.安装lib-flexible:cnpm install lib-flexible --save 2.在main.js中引入:import lib-flexible/flexible.js’ 3.配置flexible找到vue-cli路径node_modules/lib-flexible/flexible.js,然后修改rem换算单位 4.配置px to re…

ThreadLocal-线程安全利器

原文链接:https://www.jylt.cc/#/detail?activityIndex2&id9df3fd62d6ee13ff555c30157798b092 ThreadLocal是什么 ThreadLocal用来提供线程内部的局部变量,是各个线程独有的,该变量无法被其他线程访问。主要有以下作用: 解…

pyqt5实现线程与弹窗功能

pyqt5实现线程与弹窗功能 效果图: 示例下载 点我下载 https://download.csdn.net/download/lm_is_dc/87982279 简介 Pyqt5线程使用 QThread, pyqtSignal, QMutex, QWaitCondition来实现,涉及到线程,锁,信号量,线程…

深入理解计算机系统(2)_计算机基本组成

深入理解计算机系统系列文章目录 第一章 计算机的基本组成 1. 内容概述 2. 计算机基本组成 第二章 计算机的指令和运算 第三章 处理器设计 第四章 存储器和IO系统 文章目录 深入理解计算机系统系列文章目录前言参考资料一、组成架构(冯/图)1. 组成架构2…

42. 接雨水

题目链接:力扣 解题思路:从左往右按列进行计算,依次计算每一列能够接到的雨水数量。对于当前列能够接到的雨水数量是由左右两边最高的两根柱子决定的,类似于木桶定律(一只水桶能装多少水取决于它最短的那块木板&#x…

AI实践-定制你的专属简历-软件测试

简历对于找到一份理想的工作至关重要。但是,准备简历这一过程却让人感到头疼和繁琐,而且如何突出自己的优势,也是许多求职者遇到困惑。 chatgpt不会受到情感和个人喜好的影响,能够通过算法和数据分析为您编写最合适的简历。并且可…

目标检测算法-YOLOV5解析(附论文与源码)

目标检测算法-YOLOV5解析(附论文与源码)

数据结构 | 顺序二叉树

一、数据结构定义 1、顺序二叉树 /* 顺序二叉树 */ typedef char TreeType; typedef struct seqTree{int MAXNUM; // 最大元素个数int curNum; // 元素的个数TreeType nodelist[]; // 顺序二叉树节点存储 } *SeqTree; 本次代码中二叉树的结构如下图,用层次序列可…

【Python】字典

文章目录 一. 字典的创建二. 字典的操作1. 查找 key2. 新增键值对3. 删除键值对4. 遍历字典4.1 使用 for 循环遍历字典4.2 通过方法遍历字典keys() 获取到字典中所有 keyvalues() 获取到字典中的所以 valueitems 获取到字典中的所有键值对 三. 理解字典操作的效率 一. 字典的创…

Linux--打印文件内容:cat

cat是cater的简写 语法: cat [选项] [文件] 常用选项: -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 示例: ①打印文件hello.c的内容 ②带行号打印文件hello.c的内容 ③输入什么,打印什么 ④输入重定向&…

讲座笔记:如何撰写高质量科技论文

1 论文总体思路 2 摘要 3 Intro 常见Introduction逻辑: 说明问题是什么;简单罗列前人工作;描述我们的工作。 说明问题是什么;目前最好的工作面临什么挑战;我们的方法能缓解上述挑战 3.1 段落写法 首先列出几句话 …

【 Linux】文件删除原理

文章目录 Linux文件删除原理文件的索引节点和链接文件删除的过程文件删除后是否能恢复 Linux文件删除原理 Linux是一个强大的操作系统,它提供了许多命令和工具来管理文件和目录。其中,最常用的命令之一就是rm,它可以用来删除不需要的文件或目…

Less简明教程

一.概述 Less是一种动态样式语言,它在CSS的基础上扩展了混合、嵌套、变量等实用功能。Less也是一种CSS预处理语言,less文件在经过less.js处理后,最终会生成.css文件,如下图所示: 1.动态样式语言的比较 动态样式语言主…

git push报错rejected:no-fast-forward

报错: 报错关键词: non-fast-forwardyour current branch is behindthe remote changes 即:不能快速前进、当前分支滞后、远端改变 原因: 这个分支下,别人提交了一些代码到远程仓库。对于这个改变,你没有…

SpringBoot+微信小程序在线订餐小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBoot微信小程序框架开发的在线订餐小程序系统。首先,这是一个前后端分离的项目,代…

什么是 Kubernetes 服务器端应用 (SSA)?

自 2021 年 8 月 v1.22 版本发布以来,服务器端应用 (SSA) 已在 Kubernetes 中普遍可用。这是一种声明式资源管理策略,可通过将命令逻辑移至kubectl apply服务器来改进 diff 计算并警告合并冲突。 本文将解释 SSA 的工作原理以及为什么它比以前的客户端应用 (CSA) 方法更受青…

Python3 面向对象 | 菜鸟教程(十六)

目录 一、面向对象技术简介 (一)类(Class) (二)方法 (三)类变量 (四)数据成员 (五)方法重写 (六)局部变量 (七&am…

并发-抽象队列同步器AQS应用Lock详解

锁的膨胀是指synchronized原本是无锁态,当有一个线程调用时变为偏向锁,当有多个线程排队自旋等待锁时会升级为轻量锁,当线程等待时间太长时会升级为重量级锁,这就是锁的膨胀过程,且是不可逆的。 锁的粗化是指如果在一个…

【总结】1727- 前端开发中如何高效地模拟数据?

👉 「文章推荐」 详细聊一聊 Vue3 动态组件深入浅出 Vue3 自定义指令6 个你必须明白 Vue3 的 ref 和 reactive 问题初中级前端必须掌握的 10 个 Vue 优化技巧分享 15 个 Vue3 全家桶开发的避坑经验 在开发和测试工作中,mock 数据非常实用。mock 数据是指…

基于值的深度强化学习算法

目录 DQN2013 —— Playing Atari with Deep Reinforcement LearningDQN2015 —— Human-level control through deep reinforcement learning引用文献 DQN2013 —— Playing Atari with Deep Reinforcement Learning 论文下载地址 论文介绍 该论文提出了一个基于卷积神经网络…