Java面试题:Redis持久化问题

Redis持久化问题

RDB (Redis Database Backup File)

Redis数据快照

将内存中的所有数据都记录到磁盘中做快照

当Redis实例故障重启时,从磁盘读取快照文件恢复数据

使用

save/bgsave

命令进行手动快照

save使用主进程执行RDB,对所有命令都进行阻塞

bgsave使用子进程执行RDB不会阻塞

在配置文件中可以设置触发RDB的机制

以save [时间] [修改key次数] 的格式设置

RDB的执行原理

Redis主进程在虚拟内存中生成记录虚拟地址和物理地址映射关系的页表

bgsave开始时fork主进程得到子进程,子进程复制了主进程的页表数据

子进程根据页表的映射对内存数据写入RDB文件

fork底层使用copy-on-write技术

每次写数据时先拷贝一份数据,读数据时从拷贝数据中读取,避免脏数据

AOF(Append Only File)

记录Redis处理的每一个写命令(命令日志文件)

通过修改配置文件

appendonly yes

开启AOF

同时可以通过配置文件来修改AOF记录的频率

分为

always/everysec(默认)/no

请添加图片描述

AOF文件会远大于RDB文件,因为是记录命令而且会记录对同一个key的多次写操作

我们可以执行bgrewrite命令来让AOF执行重写功能来只记录最后一次写操作

可以在配置文件中对触发阈值进行配置

auto-aof-rewrite-percentage 100//根据增长百分比进行触发auto-aof-rewrite-min-size 64mb//根据设置文件大小上限进行触发

RDB和AOF的对比

请添加图片描述

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

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

相关文章

创新案例 | AI数据驱动下的全域数字化转型的五大关键洞见

近年来通过全域数字化转型在竞争激烈的市场中脱颖而出。传统零食行业面临市场竞争加剧和消费者需求多样化的挑战,如何利用数据驱动和AI技术,能更好地实现会员运营效率和用户满意度的显著提升呢?本文将探讨全域数字化转型的五大关键洞见&#…

【C++】STL中List的基本功能的模拟实现

前言:在前面学习了STL中list的使用方法,现在我们就进一步的讲解List的一些基本功能的模拟实现,这一讲博主认为是最近比较难的一个地方,各位一起加油。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 …

Excel 交叉表的格转成列,行转成格

Excel里交叉表的左表头是卡车号,上表头是工作,交叉格是工作编号。 ABCD1Truck NumberJob1Job2Job3271592859285928372395859282971473297159282971 要求:将交叉格转为列,左表头转为格。 ABC1297139585928272727137371473715726…

深度学习的实用性探究:虚幻还是现实?

深度学习的实用性探究:虚幻还是现实? 深度学习作为人工智能领域的一个热点,已经在学术和工业界引起了广泛的关注。尽管深度学习技术显示出惊人的性能和潜力,但有时它们给人的感觉是“虚”的,或许是因为它们的抽象性和…

微服务框架下,因发送端与消费端的vhost不一致,导致rabbitmq出现严重的消息堆积

一、背景 在生产环境下,rabbitmq机器出现磁盘空间不足的报警,发现是某个队列的消息只有生产,迟迟没有消费。 可以得到的信息是: 队列queue是data_center_file_change_queue队列绑定的交换机是resourceChangeExchange&#xff0c…

PLC通过Profinet转Modbus网关与流量计通讯案例

1、案例背景 在工业自动化系统中,PLC(可编程逻辑控制器)与流量计之间的通信是保证以后设备生产数据准确传输和实现控制功能的关键。但是,由于PLC和流量计可能使用不同的通信协议(如Profinet和Modbus),因此需要一种转换机制来实现它们之间的通…

uniapp uni-popup内容被隐藏问题

今天开发新需求的时候发现uni-popup 过一会就被隐藏掉只留下遮罩(css被更改了),作者进行了如下调试。 1.讲uni-popup放入其他节点内 失败! 2.在生成dom后在打开 失败! 3.uni-popup将该节点在包裹一层 然后将统计设置样式,v-if v-s…

算法题--华为od机试考试(围棋的气、用连续自然数之和来表达整数、亲子游戏)

目录 围棋的气 题目描述 输入描述 示例1 输入 输出 解析 答案 用连续自然数之和来表达整数 题目描述 输入描述 输出描述 示例1 输入 输出 说明 示例2 输入 输出 解析 答案 亲子游戏 题目描述 输入描述 输出描述 示例1 输入 输出 说明 示例2 输入…

开发人员必备的常用工具合集-lombok

Project Lombok 是一个 java 库,它会自动插入您的编辑器和构建工具,为您的 Java 增添趣味。 再也不用编写另一个 getter 或 equals 方法了,只需一个注释,您的类就拥有了一个功能齐全的构建器,自动化了您的日志记录变量…

低代码:加速企业数字化转型的利器

随着企业数字化转型步伐的加快,低代码开发平台迅速成为市场的焦点。凭借其能简化开发流程、缩短交付时间和降低成本等优势,低代码已经赢得了企业和开发人员的广泛认可,已成为推动企业数字化转型、提高企业创新效率、竞争力的关键工具。本文将…

红酒:如何选择适合的红酒储存容器

选择适合的红酒储存容器对于保持雷盛红酒的品质和风味至关重要。不同的容器具有不同的优缺点,因此应根据个人需求和条件进行选择。以下是一些常见的红酒储存容器的特点和适用场景: 玻璃瓶:玻璃瓶是常见的红酒储存容器。它具有良好的密封性能、…

粘性代理 vs 轮换代理: 特点、优势与选择指南

在网络领域,代理服务器是一种常见的工具,用于隐藏真实IP地址并提供更安全和匿名的网络体验。 粘性代理和轮换代理是两种常见的代理类型,它们在IP持久性和变更频率等方面有所不同。 本文将介绍粘性代理和轮换代理的区别,并分析在…

wordpress里面嵌入哔哩哔哩视频的方法

我们正常如果从blibli获取视频分享链接然后在wordpress里面视频URL插入,发现是播放不了的 而视频嵌入代码直接粘贴呢窗口又非常的小 非常的难受,就需要更改一下代码。你可以在在allowfullscreen"true"的后面,留1个空格&#xff…

GWT 与 Python App Engine 集成

将 Google Web Toolkit (GWT) 与 Python App Engine 集成可以实现强大的 Web 应用程序开发。这种集成允许你使用 GWT 的 Java 客户端技术构建丰富的用户界面,并将其与 Python 后端结合在一起,后端可以运行在 Google App Engine 上。 1、问题背景 在 Pyt…

从零开始手把手Vue3+TypeScript+ElementPlus管理后台项目实战四(引入Axios,并调用第一个接口)

RealWorld接口综述 本项目调用的是RealWorld项目的开放接口。 接口文档如下: https://main--realworld-docs.netlify.app/docs/specs/backend-specs/endpoints https://main--realworld-docs.netlify.app/docs/specs/frontend-specs/swagger RealWorld 是一个适…

C++多线程同步总结

C多线程同步总结 关于C多线程同步 一、C11规范下的线程库 1、C11 线程库的基本用法&#xff1a;创建线程、分离线程 #include<iostream> #include<thread> #include<windows.h> using namespace std; void threadProc() {cout<<"this is in t…

AI产品经理岗位需求量大吗?好找工作吗?

前言 在当今这个科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;已不再仅仅是一个遥远的概念&#xff0c;而是深深嵌入到我们生活的方方面面&#xff0c;从日常的语音助手到复杂的自动驾驶系统&#xff0c;AI的触角无处不在。随着AI技术的广泛应用和持续进…

Docker搭建ELKF日志分析系统

Docker搭建ELKF日志分析系统 文章目录 Docker搭建ELKF日志分析系统资源列表基础环境一、系统环境准备1.1、创建所需的映射目录1.2、修改系统参数1.3、单击创建elk-kgc网络桥接 二、基于Dockerfile构建Elasticsearch镜像2.1、创建Elasticsearch工作目录2.2、上传资源到指定工作路…

python基础实例

下一个更大的数 定义一个Solution类&#xff0c;用于实现next_great方法 class Solution: def next_great(self, nums1, nums2): # 初始化一个空字典answer&#xff0c;用于存储答案 answer {} # 初始化一个空列表stack&#xff0c;用于存储待比较的数字 stack [] # 遍历nu…