redis之主从复制和哨兵模式

(一)redis的性能管理

1、redis的数据缓存在内存中

2、查看redis的性能:info memory(重点)

used_memory:904192(单位字节)

redis中数据占用的内存

used_memory_rss:10522624

redis向操作系统申请的内存

used_memory_peak:904192

redis使用内存的峰值

3、生产中的日常系统巡检:硬件巡检、数据库、nginx、redis、docker、k8s

4、redis的内存碎片率:used_memory_rss/used_memory(重点)

(1)内存碎片率:系统已经分配给了redis,但是redis未有效利用的内存
(2)查看内存碎片率:redis-cli info memory | grep ratio

allocator_frag_ratio:1.27

分配器碎片的比例,redis主进程调度时产生的内存,比例越小越好,值越高说明碎片越多,内存的浪费越多

allocator_rss_ratio:5.24

分配器占用物理内存的比例,也就是主进程调度执行时占用了多少物理内存

rss_overhead_ratio:1.17

RSS是向系统申请的内存空间,表示redis占用物理空间额外的开销比例,比例越低越好,表示redis实际占用的物理内存和向系统申请的内存越接近,额外的开销就越低

mem_fragmentation_ratio:12.49

内存碎片的比例,比例越低越好,表示内存的使用率越高

(3)清理碎片
①自动清理(修改配置文件)——设置redis的最大内存阀值

设置redis的最大内存阀值:一旦到达阀值,自动清理碎片,开启key的回收机制

生产中一定要给redis设置阀值,不设置最大阀值,内存会直接爆满——重点

key回收的策略(重点)

maxmemory-policy volatile-lru

使用redis内置的LRU算法,把已经设置了过期时间的键值对进行淘汰数据,移除最近最少使用的键值对(针对已经设置了过期时间的键值对)

maxmemory-policy volatile-ttl

已经设置了过期时间的键值对,从当中挑选一个即将过期的键值对(针对已经设置过期时间的键值对)

maxmemory-policy volatile-random

从已经设置了过期时间的键值对当中,挑选数据随机的淘汰键值对(对设置了过期时间的键值对进行随机移除)

allkeys-lru

LRU算法当中,对所有的键值对进行淘汰,移除最少使用的键值对(针对所有的键值对)

allkeys-random

所有键值对当中任意选择数据进行淘汰

maxmemory-policy noeviction

禁止键值对回收(不删除任何键值对,直到redis把内存塞满,写不了报错为止)

②手动清理:redis-cli memory purge

(4)redis占用内存的效率问题如何解决?
①日常巡检中,对redis的占用情况进行监控
②设置redis占用系统内存的阀值,避免占用系统全部内存
③内存碎片清理(手动、自动)
④配置适合的key回收机制

5、redis雪崩(少见)

(1)redis雪崩:缓存雪崩,是指大量的应用请求无法在redis缓存中处理,请求会全部发送到后台数据库,数据库的压力会激增,数据库并发能力本身就很差,一旦高并发,数据库会很快崩溃
(2)雪崩产生的原因:
①redis集群大面积故障
②redis缓存中,大量数据同时过期,大量的请求无法得到处理
③redis实例宕机
(3)解决方案
①事前:高可用架构,防止整个缓存故障,主从复制、哨兵模式和redis集群
②事中:在国内的通用方式:HySTRIX,熔断、降级、限流三个手段来降低雪崩发生之后的损失,数据库不死即可,可以慢,但是不能没有响应(开发做)
③事后:redis备份,快速缓存预热(开发做)

6、redis的缓存击穿(常见)

(1)原因:热点数据缓存过期或者被删除,多个请求并发访问热点数据,请求转发到后台
数据库,导致数据库的性能快速下降
(2)键值对还在,但值被替换,原有的请求找不到之后,同样请求后台数据库
*经常被请求的缓存数据,最好设置为永不过期

7、redis的缓存穿透(少见)

(1)缓存穿透:缓存中没有数据,数据库中也没有对应的数据,但是有用户一直发起这个都没有的请求,而且请求的数据格式很大,黑客在利用漏洞攻击,压垮应用数据库

(九)redis的集群架构(高可用)

1、高可用方案:主从复制、哨兵模式、集群

(十)redis之主从复制

1、主从复制

(1)是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础上实现高可用
(2)实现数据的多机备份,以及读写分离(主服务器负责写,从服务器只能读,设置了从默认是只读模式)
(3)缺点:故障无法恢复,需要人工干预,写操作无法实现负载均衡
(4)主从复制需要至少3个节点

2、主从复制的工作原理

(1)主节点(master)、从节点(slave),数据的复制是单向的,只能从主节点到从节点

3、主从复制的工作机制

4、主从复制的架构
(1)20.0.0.41:master
(2)20.0.0.42:slave1
(3)20.0.0.43:slave3

5、实验过程

(1)配置主节点

(2)配置从服务器

(3)测试

(二)哨兵模式(先有主从、再有哨兵)

1、哨兵模式

(1)在主从复制的基础上,实现主节点故障的自动切换

2、哨兵模式的原理

(1)哨兵:分布式系统,部署在每一个redis节点上,用于在主从结构之间,对每台redis的服务进行监控
(2)主节点出现故障时,从节点通过投票的方式选择一个新的master
(3)哨兵模式需要至少3个节点

3、哨兵模式的结构

(1)哨兵节点:监控节点,不存储数据
(2)数据节点:主节点和从节点

4、哨兵模式的工作机制

(1)哨兵模式的原理:每一个哨兵节点每隔一秒,通过ping命令方式,检测主、从之间的心跳线。主节点在一定时间内没有回复或者回复了错误的消息,这个时候,哨兵就会主观的认为主节点下线了,超过半数的哨兵节点认为主节点下线了,这个时候才会认为主节点是客观下线
(2)哨兵节点通过raft算法(选举算法),每个节点共同投票选举出一个新的master,然后新的master实现主节点转移和故障恢复通知
(3)主节点的选举过程
①已经下线的从节点不会被选为主节点
②选择配置文件当中,从节点优先级最高的replica-priority 100
③选择一个复制数据最完整的从节点

5、实验过程

(1)配置主节点

(2)配置从服务器

起服务:先起master,再起slave:redis-sentinel sentinel.conf &

(3)监控哨兵集群的信息

(4)故障切换(有延迟)

(5)故障恢复

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

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

相关文章

asp.net mvc点餐系统餐厅管理系统

1. 主要功能 ① 管理员、收银员、厨师的登录 ② 管理员查看、添加、删除菜品类型 ③ 管理员查看、添加、删除菜品,对菜品信息进行简介和封面的修改 ④ 收银员浏览、搜索菜品,加入购物车后进行结算,生成订单 ⑤ 厨师查看待完成菜品信息…

文心一言 VS 讯飞星火 VS chatgpt (140)-- 算法导论11.4 5题

五、用go语言,考虑一个装载因子为a的开放寻址散列表。找出一个非零的a值,使得一次不成功查找的探查期望数是一次成功查找的探查期望数的 2 倍。这两个探查期望数可以使用定理11.6 和定理 11.8 中给定的上界。 文心一言,代码正常运行&#xf…

铸就匠心,打造西部最具权威的行业商会组织

中国商报陕西报道(记者 朱清平)西安市五金机电商会(以下简称商会)第二届一次会员代表大会暨新任理事、监事就职典礼于11月17日在西安经开洲际酒店召开。 商会于2018年10月成立,在5年的发展中,依托“一带一路”发展的“快车道”,通过新丝路国际工业品数字…

分享给自媒体人:做自媒体最好的心态

做自媒体路上的两大修行: 一是状态不好的时候,明知道停更会掉流量,依然可以毫不焦虑地躺平; 二是发的东西没人看,坚持更新也没流量,却依然可以坚定地做自己。 做号这件事,就是一分耕耘一分收获的。 可能有人…

感恩节的习俗 Custom of Family Dinner

感恩节是美国最普遍庆祝的传统节日之一。在每年11月的第四个星期四,感恩节如期而至。Thanksgiving is one of the most universally celebrated traditional American holidays. Every year, Thanksgiving arrives on the fourth Thursday of November without fail…

如何写老客户开发信?维护客户邮件怎么写?

老客户开发信的写作技巧?针对老客户的营销邮件模板? 老客户开发信是维护和发展客户关系的关键工具之一。通过巧妙的信函,您可以巩固与老客户之间的联系,促使他们继续购买您的产品或服务。在本文中,蜂邮将分享一些建议…

汇编基础知识

1.1 机器语言 机器语言就是一些二进制代码,存放在内存中。它是机器指令的集合,所谓机器指令就是机器能够正确执行的命令 1.2 汇编语言的产生 1.汇编语言的主体是汇编指令 2.汇编指令实际上就是机器指令的助记符。它们的唯一区别在于书写方式上 寄存器…

VB.net读写S50/F08IC卡,修改卡片密码控制位源码

本示例使用设备:Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/智能海报/-淘宝网 (taobao.com) 函数声明 Module Module1读卡函数声明Public Declare Function piccreadex Lib "OUR_MIFARE.dll" (ByVal ctrlword As Byte, ByRef serial As Byte, …

翻译软件Mate Translate mac中文版介绍说明

Mate Translate mac可以帮你翻译超过100种语言的单词和短语,使用文本到语音转换,并浏览历史上已经完成的翻译。你还可以使用Control S在弹出窗口中快速交换语言。 Mate Translate Mac版软件介绍 Mate Translate 可以在你的所有设备之间轻松同步&#x…

处理无线debug问题

无限debug的产生 条件说明 开发者工具是打开状态 js代码中有debugger js有定时处理 setInterval(() > {(function (a) {return (function (a) {return (Function(Function(arguments[0]" a ")()))})(a)})(bugger)(de, 0, 0, (0, 0)); }, 1000); ​ #这里就…

关键性进展! 小米造车露真容 预计明年上市

大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 小米在各种不同的产品上都在不断打上自己的品牌,这绝对不止于智能手机,而是有智能…

el-form动态表单动态验证(先验证不为空,再验证长度在20以内,最后向后台发送请求验证账号是否重复)

data(){var checkSno (rule, value, callback) > {if (!value) {callback(new Error("请输入账号"));} else if (value.length > 20) {callback(new Error("长度为1-20"));} else {if (this.form.id) {// 修改时检查账号是否重复selectLoginId({ sn…

JSP EL表达式基本使用

今天我们来说EL表达式 这在整个jsp中都是非常重要的一章 因为 如果我们用 <%属性%> 属性为空时 直接就是个 null 这个肯定是不能让用户看到的东西 所以 我们就需要EL表达式 例如 我们jsp代码编写如下 <% page contentType"text/html; charsetUTF-8" page…

怎么批量提取文件名字到Excel中?

怎么批量提取文件名字到Excel中&#xff1f;Excel是由微软公司开发的一种电子表格软件&#xff0c;它是Microsoft Office办公套件的一部分。Excel提供了强大的数据处理和分析功能&#xff0c;用户可以使用Excel创建、编辑和管理电子表格&#xff0c;进行各种计算、数据分析、图…

【5k字长文 | Vue学习笔记】#1 认识Vue对象和基础语法

Vue是一个非常流行的渐进式JavaScript框架&#xff0c;渐进式指的是自底向上&#xff0c;从小组件逐渐向上构成整个项目&#xff0c;渐进式还可以理解为&#xff1a;用什么就拿什么&#xff0c;每个组件只做自己的事&#xff0c;尽可能解耦合。 本节我们将学习简单的Vue实例&a…

线性代数 - 几何原理

目录 序言向量的定义线性组合、张成空间与向量基线性变换和矩阵线性复合变换与矩阵乘法三维空间的线性变换行列式矩阵的秩和逆矩阵维度变换点乘叉乘基变换特征值和特征向量抽象向量空间 序言 欢迎阅读这篇关于线性代数的文章。在这里&#xff0c;我们将从一个全新的角度去探索线…

机器学习第10天:集成学习

文章目录 机器学习专栏 介绍 投票分类器 介绍 代码 核心代码 示例代码 软投票与硬投票 bagging与pasting 介绍 核心代码 随机森林 介绍 代码 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 集成学习的思想是很直观的&#xff1a;多个人判断的结合往往比…

家政保洁预约小程序app开发特点有哪些?

家政预约服务小程序APP开发的特点介绍&#xff1b; 1. 低成本&#xff1a;用户通过手机APP下单&#xff0c;省去了中介费用&#xff0c;降低了雇主的雇佣成本。 2. 高收入&#xff1a;家政服务人员通过手机APP接单&#xff0c;省去了中介费用&#xff0c;从而提高了服务人员的…

QT专栏1 -Qt安装教程

#本文时间2023年11月18日&#xff0c;Qt 6.6# Qt 安装简要说明&#xff1a; Qt有两个版本一个是商业版本&#xff08;收费&#xff09;&#xff0c;另一个是开源版本&#xff08;免费&#xff09;&#xff1b; 打开安装程序时&#xff0c;通过判断账号是否有公司&#xff0c;安…

校园报修抢修小程序系统开发 物业小区报修预约上门维修工单系统

开发的功能模块有&#xff1a; 1.报修工单提交&#xff1a;学生、教职员工等可以使用小程序提交报修请求。这通常包括选择报修的问题类型&#xff08;如水漏、电器故障、照明问题等&#xff09;&#xff0c;地点&#xff0c;报修联系人&#xff0c;联系电话等&#xff0c;并提供…