分布式缓存redis
分布式缓存redis
1 redis单机(单节点)部署缺点
(1)数据丢失问题:redis是内存存储,服务重启可能会丢失数据
(2)并发能力问题:redis单节点(单机)部署在并发量不大的话,也是可以满足要求的,并发量最多几万,无法承受更高的并发。
(3)故障恢复问题:如果redis单节点故障中断,那么会影响应用的使用。
(4)存储能力问题:内存存储无法和磁盘存储做比较,不能满足海量数据的要求。
2 redis(是单线程的)集群(分布式缓存redis)
2.1 解决redis单机部署的缺点:
(1)解决数据丢失问题:redis的持久化RDB和AOF
(2)解决并发能力问题:搭建redis主从集群,实现读写分离
(3)解决故障恢复问题:搭建redis哨兵,实现健康监测和自动恢复
(4)存储能力问题:搭建redis分片集群
2.2 redis的RDB和AOF持久化
1 RDB(redis database backup):
将内存中的数据都记录到磁盘中,重启后,可读RDB(快照)文件进行数据恢复。快照文件位置:默认保存在redis运行命令执行的目录下。
redis客户端命令:
redis-cli
>save命令:
执行一次RDB操作,主进程来执行RDB,会阻塞进程。
>bgsave命令:
后台启动,(fork主进程得到子进程)子进程执行RDB,避免主进程受影响。
特殊:如果redis是自己手动停止的,redis停机时会执行一次RDB
2 RDB的fork原理

Bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据,完成fork后读取内存数据并写入RDB文件。主进程执行fork时,也是阻塞的,只能用来执行fork。
fork就是复制页表(linux的进程和物理内存(内存条)之间映射的虚拟内存),Linux中进程不能直接操作物理内存(内存条) 需要在中间借助一个虚拟内存来映射操作物理内存。
fork操作的范围:
不包括:子进程写新的RDB文件(替换旧的RDB文件)的过程,fork操作只会复制页表(就是进程和物理内存的映射关系表) 生成1个子进程。
思考:
如果在fork完一个子进程后,子进程生成RDB文件过程中,有请求来修改(写)操作,那么会操作哪一部分?
当主进程执行读操作时,访问共享内存。
当主进程执行写操作时,则会拷贝一份数据,执行写操作,(只能写这个拷贝的副本数据)。后续的读请求就会访问这个副本数据。
RDB的缺点
RDB执行时间(间隔)长,2次RDB之间写入数据有丢失风险。 如果执行间隔短的话(2-3秒一次),那么太耗性能。
AOF持久化
append only file 追加文件
1 介绍
为了弥补RDB的缺点,redis处理的每一个写命令都会记录在AOF文件中(RDB是每次都重新读全部内存数据),可以看过是命令日志文件。
2 AOF文件体积大的处理方法(将AOF文件中的命令进行重写,相当于将重复命令合成一个(多个set同一个key 可合为1个最后的key操作命令))
(1)手动
redis-cli连接redis客户端,执行bgrewirterof命令,用最少的命令达到相同的效果。

(2)自动(在配置文件中添加)
redis也会在触发阈值时自动重写AOF文件,可在redis.conf文件中配置
RDB和AOF持久化的比较

对数据安全性比较高并且数据完整的话:推荐AOF持久化
宕机回复速度要求高的话:推荐RDB持久化
相关文章:
分布式缓存redis
分布式缓存redis 1 redis单机(单节点)部署缺点 (1)数据丢失问题:redis是内存存储,服务重启可能会丢失数据 (2)并发能力问题:redis单节点(单机)部…...
【Rust】数据类型
目录 思维导图 1. 数据类型概述 1.1 标量类型 1.1.1 整数类型 1.1.2 浮点数类型 1.1.3 布尔类型 1.1.4 字符类型 1.2 复合类型 1.2.1 元组类型 1.2.2 数组类型 2. 类型注解与类型推断 3. 整数溢出处理 4. 数字运算 5. 示例 思维导图 1. 数据类型概述 Rust是一种静…...
在现代工业自动化领域CClinkIE转ModbusTCP网关的应用
在现代工业自动化领域,开疆智能CCLINKIE转ModbusTCP网关扮演着至关重要的角色,尤其是在立体仓库的应用中。立体仓库系统通过高度集成的自动化设备和先进的信息技术,实现了物料存储和管理的高效率。CCLINKIE转ModbusTCP网关作为连接不同工业通…...
ASP.NET Core与GraphQL集成
一、引言:探索 C# 与ASP.NET Core、GraphQL 的协同魅力 在当今数字化浪潮中,Web 开发领域不断演进,新技术层出不穷。C# 作为.NET 平台上的中流砥柱,凭借其强大的功能与优雅的语法,成为众多开发者构建各类应用程序的得…...
Zabbix 从入门到精通
一、Zabbix 简介 1.1 什么是 Zabbix Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。它能监控各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位 / 解决存在的各种问题。 1…...
文生图模型的技术原理、训练方案与微调方案
文生图模型的技术原理、训练方案与微调方案 引言 文生图(Text-to-Image)模型是一类能够根据文本描述生成对应图像的深度学习模型。近年来,随着生成对抗网络(GANs)和扩散模型(Diffusion Models)等技术的进步,文生图模型在图像生成领域取得了显著的进展。本文将详细介绍…...
3_CSS3 渐变 --[CSS3 进阶之路]
CSS3 引入了渐变(gradients),它允许在两个或多个指定的颜色之间显示平滑的过渡。CSS3 支持两种类型的渐变: 线性渐变(Linear Gradients):颜色沿着一条线性路径变化,可以是水平、垂直…...
国内主流的Spring微服务方案指南
构建一个完整的 Spring 微服务方案涉及多个关键组件的集成与配置,包括服务注册与发现、配置管理、API 网关、负载均衡、服务调用、熔断与限流、消息中间件、分布式追踪、服务网格、容器编排以及数据库与缓存等。以下将结合前述内容,详细介绍一个完整的中…...
docker更换镜像源脚本
Ubuntu / Debian 系统下的脚本 sudo curl -fsSL http://luyuanbo79.iepose.cn/wenjian/docker%20jingxiangyuan/Ubuntu-Debian.sh | sh CentOS / RHEL 系统下的脚本 sudo curl -fsSL\n\nhttp://luyuanbo79.iepose.cn/wenjian/docker%20jingxiangyuan/CentOS%20%20RHEL.sh | …...
Java Web开发进阶——错误处理与日志管理
错误处理和日志管理是任何生产环境中不可或缺的一部分。在 Spring Boot 中,合理的错误处理机制不仅能够提升用户体验,还能帮助开发者快速定位问题;而有效的日志管理能够帮助团队监控应用运行状态,及时发现和解决问题。 1. 常见错误…...
计算机网络 笔记 网络层1
网络层功能概述 主要的任务是把分组从源端传输到目的端,为分组交换网上的不同主句提供通信服务,网络层的传输单位是数据报。 主要的功能; 1,路由选择:路由选择指网络层根据特定算法,为数据包从源节点到目…...
【论文笔记】多个大规模数据集上的SOTA绝对位姿回归方法:Reloc3r
abstract 视觉定位旨在确定查询图像相对于姿势图像数据库的相机姿势。 近年来,直接回归相机姿势的深度神经网络由于其快速推理能力而受到欢迎。 然而,现有方法很难很好地推广到新场景或提供准确的相机姿态估计。 为了解决这些问题,我们提出了…...
springMVC---常用注解
目录 一、创建项目 1.依赖 2.web.xml 3.spring-mvc.xml 二、RequestParam注解 1.作用 2.属性 3.代码 DeptController类 启动tomcat 三、RequestBody注解 1.作用 2.属性 3.代码 (1)DeptController类 (2)index.jsp (3)启动tomcat 四、P…...
青龙面板脚本开发指南:高效自动化任务的实现
青龙面板脚本开发指南:高效自动化任务的实现 青龙面板(Qinglong Panel)是一款强大的任务管理平台,支持多种语言的脚本开发和执行。通过在青龙面板中编写和管理脚本,用户可以轻松实现自动化任务,提高工作效…...
深入详解DICOM医学影像定位线相关知识:理解定位线的概念、定位线的作用以及定位线显示和计算原理
DICOM医学影像中的定位线(Localization Line) 在医学影像学中,DICOM是用于存储和交换医学影像的标准格式。定位线(Localization Line)在医学影像的显示和分析中起着重要作用,它帮助医生和医学专业人员在影像中精确地标定重要的解剖结构、区域或特征,辅助进行定位、治疗计…...
网络应用技术 实验七:实现无线局域网
一、实验简介 在 eNSP 中构建无线局域网,并实现全网移动终端互相通信。 二、实验目的 1 、理解无线局域网的工作原理; 2 、熟悉无线局域网的规划与构建过程; 3 、掌握无线局域网的配置方法; 三、实验学时 2 学时 四、实…...
kubeneters-循序渐进Cilium网络(一)
文章目录 概要传统网络不同的网络(或子网)之间通信Kubernetes 中的网络在同一栋大楼内的公寓之间通信跨大楼的通信总结 概要 本文通过“封包追踪”方法,深入解析 Kubernetes 网络通信过程。基于 eBPF 的 Cilium 工具,直观展示了数…...
elasticsearch中IK分词器
1、什么是IK分词器 ElasticSearch 几种常用分词器如下: 分词器分词方式StandardAnalyzer单字分词CJKAnalyzer二分法IKAnalyzer词库分词 分词∶即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库…...
Qt之http客户端类
一、HTTP客户端类功能: 1、POST请求发送: 支持发送JSON格式的数据自动处理请求头设置提供上传进度监控、 2、GET请求发送: 简单的GET请求实现支持下载进度监控 3、状态监控: 通过信号槽机制监控上传/下载进度错误处理和状态回调 /…...
18.C语言文件操作详解:指针、打开、读取与写入
目录 1.文件指针2.fopen3.标准流4.fclose5.EOF6.freopen()7.fgetc与getc8. fputc与putc9.fprintf10.fscanf11.fgets12.fputs13.fwrite14.fread15.feof16.fseek17.ftell18.rewind19.fgetpos()与fsetpos20.ferror与clearerr21.remove22.rename 1.文件指针 本篇原文为:…...
5个实用技巧让华硕笔记本性能提升30%:GHelper全功能解析
5个实用技巧让华硕笔记本性能提升30%:GHelper全功能解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …...
3大突破重构多模态交互:AudioCLIP如何实现跨模态语义统一
3大突破重构多模态交互:AudioCLIP如何实现跨模态语义统一 【免费下载链接】AudioCLIP Source code for models described in the paper "AudioCLIP: Extending CLIP to Image, Text and Audio" (https://arxiv.org/abs/2106.13043) 项目地址: https://g…...
利用自定义Ref实现防抖
防抖(Debounce)是一种常见的前端优化技术,用于限制函数频繁触发。本文通过自定义 ref 可以将其封装为可复用的逻辑。 防抖原理 防抖的核心是延迟执行函数,若在延迟时间内再次触发,则重新计时。通常用于输入框搜索、窗…...
手把手教你用华为昇腾A2-910b显卡,一键部署中文Embedding和Rerank模型
华为昇腾A2-910b实战:中文Embedding与Rerank模型高效部署指南 当你在深夜的办公室里盯着昇腾显卡的报错日志时,可能正经历着每个AI工程师都熟悉的"部署地狱"。别担心,这份指南将带你绕过所有坑点,用最直接的方式在华为A…...
惊艳音效生成效果:HunyuanVideo-Foley实际作品展示与测评
惊艳音效生成效果:HunyuanVideo-Foley实际作品展示与测评 你肯定有过这样的经历:精心拍摄了一段视频,画面构图、光影、运镜都堪称完美,但导出后总觉得少了点什么。对,就是声音。画面里的人物在奔跑,却听不…...
本地语音合成技术全解析:从架构设计到行业落地
本地语音合成技术全解析:从架构设计到行业落地 【免费下载链接】tts-vue 🎤 微软语音合成工具,使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 一、技术价值:为何本地…...
用pnpm安装一个软件显示包找不到的问题解决
问题总览 您遇到的是**pnpm环境缺失与目标包mmem0ai无法从npm registry获取**的双重问题,具体表现为两条错误链: sudo pnpm add mmem0ai → sudo: pnpm: command not found(sudo环境下未识别pnpm命令);直接运行pnpm ad…...
用ESP32-CAM和4G DTU做个远程监控:手把手教你拍照上传到巴法云(附完整代码)
基于ESP32-CAM与4G DTU构建低功耗远程图像监控系统 在智能家居、环境监测和远程安防等场景中,图像数据的实时采集与传输一直是物联网开发者的核心需求。传统方案往往受限于WiFi覆盖范围或复杂的网络配置,而4G网络与低功耗硬件的结合为这一问题提供了优雅…...
零基础入门:Qwen3-ASR-1.7B语音识别Docker部署全流程
零基础入门:Qwen3-ASR-1.7B语音识别Docker部署全流程 1. 为什么选择Docker部署语音识别服务 想象一下,你刚学会使用Qwen3-ASR-1.7B这个强大的语音识别模型,在本地电脑上测试效果非常棒。但当你想把它部署到服务器上时,突然发现各…...
避开PLC烧毁陷阱:FX3S晶体管输出必须知道的7个细节(含虚设电阻计算)
避开PLC烧毁陷阱:FX3S晶体管输出必须知道的7个细节(含虚设电阻计算) 在工业自动化现场,FX3S系列PLC的晶体管输出模块烧毁问题堪称"隐形杀手"。去年某汽车生产线因一个0.5A保险丝选型错误导致全线停产8小时,损…...
