redis——分布式

news2025/1/12 10:05:15

    • 持久化
      • RDB
      • AOF
    • 主从同步
      • 全量同步
      • 增量同步
    • 哨兵sentinel
        • 作用
        • 服务状态监控
        • 选举master
    • 分片集群
      • 作用
      • 散列插槽 hash slot
      • 集群伸缩
      • 故障转移
    • 多级缓存

持久化

RDB

redis备份文件(快照)

  • 可压缩,耗费cpu
  • 默认在服务停止时触发
  • 可以设置一定条件,条件触发,开启子进程备份
    fork主进程得到子进程,二者共享内存数据(子进程复制主进程的页表虚拟内存),然后备份,用新的RDB文件替换旧的
    子进程和主进程二者共享的页表,映射到同一位置的物理内存,此时子进程读数据,如果主进程修改数据会冲突。
    cpoy on write 技术:子进程备份时,将物理内存设置为只读,主进程写数据需要拷贝一份,在副本中修改,页表的映射关系也改为副本。极端情况下,需要复制全部的数据,则内存使用翻倍
  • 耗时长,两次RDB之间,如果宕机,数据有丢失风险

AOF

将redis全部命令存储。

  • 默认关闭
  • 先写到缓冲区中,再定时/立刻/操作系统决定从缓冲区写到文件中。
  • 整理命令,将之前的无效命令处理掉。根据文件大小触发,减少AOF文件大小
    -

主从同步

  • 读写分离,读到从,写到主,高并发读
  • 可以开启无磁盘复制,(网络快的情况下)
  • redis单节点内存较小,RDB也会减小,减少磁盘/网络IO
  • 减少全量同步
  • 从节点过多时,可以主-从-从

全量同步

  • 第一次全量同步,生成RDB文件,发给从节点。之后将repl_baklog命令发给从节点
  • 从节点继承主节点的replid,offset记录从节点同步位置
    在这里插入图片描述

增量同步

在这里插入图片描述

  • repl_baklog文件大小一定,是一个环形缓冲区,如果从节点长期宕机未重启,致使repl_baklog覆盖掉原来的offset则无法增量更新。从节点要尽快恢复

哨兵sentinel

作用

  • 监控:监控redis主节点和从节点,是否正常工作
  • 自动故障恢复:sentinel本身也是一个集群,保证自身可用,出故障自己恢复
  • 通知:sentinel类似注册中心,redis发生改变时,将最新信息发给redis客户端

服务状态监控

心跳检测
主观下线:一段时间未响应
客观下线:一半以上(可变)的sentinel认为实例故障

选举master

  • 确认从节点正常存活:心跳检测未响应则排除
  • slave-priority比较,越小优先级越高,0不参与选举
  • offset越大则节点数据越新越完整
  • 节点id越小,优先级越高
  • 广播新的主节点信息,强制修改旧主节点信息,将其改为从节点

分片集群

多个master

作用

  • 海量数据存储
  • 高并发写

散列插槽 hash slot

将多个插槽(16384)分给多个master
key的有效部分({}中包含的部分)hash 计算插槽

集群伸缩

添加/删除节点,插槽重分配

故障转移

在这里插入图片描述

多级缓存

各个环境添加缓存
在这里插入图片描述
浏览器:静态资源
tomcat的性能不如redis,如果放在redis之前,限制了系统并发量
redis未命中的情况下,请求不会直接达到数据库,保护数据库
tomcat内部实现进程缓存(jvm进程缓存)

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

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

相关文章

《C Primer Plus》第16章复习题与编程练习

《C Primer Plus》第16章复习题与编程练习复习题1. 下面的几组代码由一个或多个宏组成,其后是使用宏的源代码。在每种情况下代码的结果是什么?这些代码是否是有效代码?(假设其中的变量已声明)2. 修改复习题1中d部分的定…

Linux的chage命令

Linux系统中有安全验证机制,有一个密码过期管理功能,当该账户密码过期了,那么用户在登录系统的时候就会提示我们更改密码。当密码过期后,并不代表这个用户不用密码就能登录了,而是使用旧密码登录,然后跳转到…

靶机精讲之PWOOS1.0

主机发现 nmap扫描 端口发现扫描 UDP扫描 服务扫描 脚本扫描 查看链接 暴露的信息 mgmt manegement管理系统 web渗透 80端口 观察文件路径的变化 sql注入 手动注入 加‘有报错 查看有无文件包含 无 /etc/passwd(查看文件包含) 有 10000端口 把有文件包含路径在…

C++程序设计——右值引用

一、右值引用概念 引用: C98中提出了引用的概念,引用即别名,引用变量与其引用实体共用同一块内存空间,而引用的底层是通过指针来实现,因此使用引用,可以提高程序的可读性。 右值引用(类型&& 右值…

校园商城项目自制面经

ware-仓库 目录 ES 为什么redis快 为什么ES搜索快? 怎么理解es的倒排索引 简单看SpringCache的api Feign怎么用的 gateWay实现前端和后端的跨域请求: 三级分类: 网站的数据上传: JSR303校验 自定义校验功能 ES&#xf…

空间复杂度

概念 空间复杂度:是对一个算法在运行过程中临时占用存储空间大小的量度。 空间复杂度和时间复杂度的表示方法是一样的,也使用大O渐进表示法,计算规则基本相似。空间复杂度计算的并不是程序占用的字节大小,而是变量的个数。 大O…

chatgpt+机器人控制器融合(一)

当今机器人技术面临的挑战,以及 ChatGPT 能提供的帮助 目前机器人的操作流是从工程师或技术用户开始,需要他们将任务需求转换为系统代码。工程师会处于工作流程的回路中,他们需要不断编写新的代码和规范来纠正机器人的行为。总得来说&#x…

Faster-RCNN代码解读4:辅助文件解读

Faster-RCNN代码解读4:辅助文件解读 前言 ​ 因为最近打算尝试一下Faster-RCNN的复现,不要多想,我还没有厉害到可以一个人复现所有代码。所以,是参考别人的代码,进行自己的解读。 ​ 代码来自于B站的UP主(…

我的创作纪念日:Unity CEO表示生成式AI将是Unity近期发展重点,发布神秘影片预告

PICK 未来的AI技术将会让人类迎来下一个生产力变革,这其中也包括生成型AI的突破性革新。各大公司也正在竞相推出AIGC工具,其中微软的Copilot、Adobe的Firefly、Github的chatGPT等引起了人们的关注。然而,游戏开发领域似乎还没有一款真正针对性…

vector容器

1、vector简介 vector 和 arry 非常相似,唯一存在的不同是 vector 是动态分配内存空间,随着元素的增加空间自动增加,但是 arry 是静态的 wector:单端动态数组容器,只允许在一端进行操作 2、vector的使用 需要引进头…

PyTorch深度学习实战 | 基于多层感知机模型和随机森林模型的某地房价预测

简介: 在现实生活中,除了分类问题外,也存在很多需要预测出具体值的回归问题,例如年龄预测、房价预测、股价预测等。相比分类问题而言,回归问题输出类型为一个连续值,如下表所示为两者的区别。在本文中&…

打造高效自动化测试流程:Jenkins+Allure+Pytest环境搭建和实战

引言 自动化测试已经成为软件开发中不可或缺的一部分。而在自动化测试中,Jenkins、Allure和Pytest这三个工具的组合可以说是非常流行和实用的。 Jenkins作为持续集成工具,可以充分利用其丰富的插件体系来搭建自动化测试环境; Allure则为我们…

怎么把jpg转换成pdf格式?实用又简单的方法来了

在工作和学习中,我们常常需要发送一些重要的图片给别人,这些图片可能包含学习资料或者重要的文件内容。但是发送多个JPG图片既不方便又不直观,所以我们需要将它们转换成PDF格式,以便于发送和查看。如果你不知道如何进行JPG到PDF的…

UI学习路线图2023完整版(适合自学)

作为数字时代中不可或缺的职业之一,UI设计师在今天和未来都有着广阔的职业前景。UI设计师有高需求行业、薪资高、职位晋升空间大、多样化的工作机会、职业发展空间大等许多优势,也有很多小伙伴想自学UI设计,但是不知道自己怎么学,…

服务器节点之间 如何实现自动化文件同步?

大数据、云计算、物联网的发展,使得企业能够拥有的数据急剧增加。面对快速变化和增长的庞大数据,如何高效地管理、利用数据对于企业来说至关重要。 但是,数据传输模式单一、自动化程度低、传输效率低下等难题,阻碍着企业对其数字…

TensorFlow 1.x 深度学习秘籍:6~10

原文:TensorFlow 1.x Deep Learning Cookbook 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如…

高级UI之Android事件分发机制原理及源码分析

前言 在 Android 中,事件分发机制是一块很重要的知识点, 掌握这个机制能帮你在平时的开发中解决掉很多的 View 事件冲突问题,这个问题也是面试中问的比较多的一个问题了,本篇就来总结下这个知识点。 事件分发原因 Android 中页…

RK3399平台开发系列讲解(外设篇)Camera OV13850配置过程

🚀返回专栏总目录 文章目录 一、DTS 配置二、驱动说明三、配置原理四、cam_board.xml沉淀、分享、成长,让自己和他人都能有所收获!😄 📢我们以 OV13850/OV5640 摄像头为例,讲解在该开发板上的配置过程。 一、DTS 配置 isp0: isp@ff910000 {…status = "okay&quo…

R-CNN(Region with CNN feature)

目录 1. 介绍 2. R-CNN 2.1 SS(Selective Search) 算法 生成候选框 2.2 CNN 提取特征 2.3 SVM 分类 非极大值抑制 2.4 回归器微调候选框 3. R-CNN 的缺点 1. 介绍 目标识别的发展历史如图 2. R-CNN RCNN 是两阶段目标检测的鼻祖,类似于深度学习开山之作Al…

第03章_流程控制语句

第03章_流程控制语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模…