redis的性能管理及集群架构(主从复制、哨兵模式)

一、redis的性能管理

1、内存指标info memory

内存指标(重要)

used_memory:853736

数据占用的内存

used_memory_rss:10551296

redis向操作系统申请的内存

used_memory_peak:853736

redis使用内存的峰值

注:单位:字节

系统巡检:硬件巡检、数据库、中间件(nginx、redis)、docker、k8s

2内存碎片率

(1)定义:系统已分配给redis,但reids未能有效利用的内存

(2)计算格式:内存碎片率=used_memory_rss/used_memory

(3)监控指标redis-cli info memory|grep ratio(生产环境常用)

监控指标

定义

allocator_frag_ratio:1.29

分配器碎片的比例

(越小越好,值越高,内存浪费越多)

redis主进程调度时产生的内存

allocator_rss_ratio:5.49

分配器占用物理内存的比例

主进程调度时占用的物理内存

rss_overhead_ratio:1.38

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

RSS是redis向系统申请的内存空间

mem_fragmentation_ratio:15.59

内存碎片率

(越低越好,内存使用率越高)

3、清理内存的两种方式

(1)自动清理碎片vim /etc/redis/6379.conf

末尾添加activedefrag yes自动清理碎片的配置

2手动清理碎片redis-cli memory purge

4、设置redis的最大内存阀值

(在工作中一定要设置redis的占用内存阈值。若不设置阈值,会塞满内存,直到炸)

(1)先设置最大内存阀值vim /etc/redis/6379.conf

添加maxmemory 1gb

一旦达到阀值,会自动清理碎片,开启key的回收机制

(2)再开启key的回收机制

key的回收机制

maxmemory-policy volatile-lru

(常用)

使用redis内置的lru算法,在已设置过期时间的键值对中淘汰数据中,移除最近最少使用的键值对

maxmemory-policy volatile-ttl

(常用)

使用redis内置的ttl算法,在已设置过期时间的键值对中挑选一个即将过期的键值对

maxmemory-policy volatile-random

(少用)

在已设置过期时间的键值对中,挑选数据,随机淘汰键值对

注:以上算法只针对已设置过期时间的键值对,永不过期的不在此范围内

allkeys-lru

使用redis内置的lru算法,对所有的键值对进行淘汰,移除最少使用的键值对

allkeys-random

(更少用)

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

注:以上算法针对所有的键值对,无论是否设置过期时间

maxmemory-policy noeviction

(最常用)

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

【面试题】redis占用内存的效率问题如何解决?(经验)

①日常巡检中,监控redis的占用情况

②设置redis占用系统内存的阀值,避免占用系统全部内存

③手动/自动清理内存碎片

④配置合适的key回收机制

5redis雪崩(缓存雪崩)(少见)

(1)定义

大量的应用请求无法在redis缓存中处理,请求会全部发送到后台数据库,数据库并发能力本身就差,一旦高并发,数据库很快会崩溃

(2)产生雪崩的原因

①redis集群大面积故障

②在redis缓存中,大量数据同时过期,大量的请求无法得到处理

③redis实例宕机

(3)解决雪崩的方式

①事前预防:采用高可用架构(主从复制、哨兵模式、redis集群),防止整个缓存故障

②事中处理(开发):在国内通用方式——HySTRIX(熔断、降级、限流),降低雪崩发生后的损失,确保数据库不死,可以慢,但不能没有响应

③事后解决:以redis备份的方式恢复数据(运维)或快速缓存预热(开发)

6、redis的缓存击穿(重点)

(1)产生原因

①热点数据缓存过期或被删除,当多个请求并发访问热点数据时,请求转发到数据库,导致数据库性能快速下降。经常被请求的缓存数据最好设置为永不过期

②键值对还在,但值被替换,原有的请求找不到之后,同样会请求后台数据库,导致数据库性能快速下降

(2)解决方式

①热点数据设置成永不过期

②恢复原有的值

7、redis的缓存穿透(恶意攻击)(很少见)

(1)定义

缓存中没有数据,数据库也没有相应的数据,但有用户一直在发起这个都没有的请求,而且请求的数据格式很大。这种情况一般是黑客利用漏洞攻击,压垮应用数据库

(2)解决方式:专门的安全人员处理

redis的集群架构

1、高可用方案

(1)主从复制

(2)哨兵模式

(3)redis集群

2、主从复制

(1)主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础上实现高可用

(2)主从复制实现数据的多机备份和读写分离(主服务器——写,从服务器——读)

缺点:故障无法自动恢复,需人工干预,无法实现写操作的负载均衡

3、主从复制的工作原理

由主节点master和从节点slave组成,数据复制是单向的,只能从主节点到从节点

4、哨兵模式

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

(1)哨兵模式定义

哨兵是一个分布式系统,用于在主从结构之间,对每台redis服务进行监控。主节点出现故障时,从节点通过投票的方式选择一个新的master

哨兵模式也需要至少三个节点

(2)哨兵模式的结构

①哨兵节点:监控主、从节点,不存储数据

②数据节点:主节点和从节点,都是数据节点

(哨兵1监控从1,从2节点;哨兵2监控主节点,从2 节点;哨兵3监控主节点,从1节点)

(2)哨兵模式工作原理

每个哨兵节点每隔一秒,通过ping命令方式,检测主、从之间的心跳线,主节点在一定时间内没有回复或回复了错误消息,这个时候哨兵会主观认为主节点下线了;超过半数的哨兵节点认为主节点下线了,这个时候才会认为主节点是客观下线

故障恢复可能会有延迟,因为有一个选举过程

(4)如何选举新的主节点

哨兵节点通过raft算法(选举算法),每个节点共同投票选举出一个新的master,然后新的master实现主节点的转移和故障恢复通知

(5)主节点的选举过程

①已下线的从节点不会被选为主节点

②选择配置文件中从节点优先级最高的replica-priority 100

③自动选择一个复制数据最完整的从节点

三、主从复制+哨兵模式实验

基于主从复制做哨兵模式实验

实验目的:解决redis单节点故障问题

实验条件:

IP地址

作用

组件

20.0.0.14

主服务器

redis服务

20.0.0.24

从服务器1

redis服务

20.0.0.34

从服务器2

redis服务

实验步骤:

1、主从复制实验

(1)配置主服务器

(2)配置从服务器

从1

从2

replicaof 20.0.0.14 6379表示只读(20.0.0.14是主服务器的IP地址)

主从复制完成

(3)测试

2、哨兵模式实验

(1)配置主服务器

这个2:一般设置成集群的一半

最小切换时间30秒

最大切换时间180秒

(2)配置从服务器

从1

从2(与从1同样的配置)

(3)启动主从服务器(先启动主再启动从)

redis-sentinel sentinel.conf &

监控哨兵集群的信息redis-cli -p 26379 info Sentinel

哨兵模式搭建完毕

查看从节点信息tail -f /var/log/sentinel.log

(4)故障切换

模拟故障

看日志是否主从切换,有延迟

tail -f /var/log/sentinel.log

目前,新主的IP地址是20.0.0.34

(5)测试

①测试新主能不能写

恢复原主

②测试原主能否继续写

不能

原因:配置文件/etc/redis/6379.conf发生变化

原主(现从2)

从1

原从2(新主)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

向日葵x华测导航:远程控制如何助力导航测绘设备运维

导航测绘在各个领域均在发挥积极作用,其中RTK载波相位差分技术是导航测绘领域所常用的主流技术,该技术基于卫星定位系统的基础定位数据,可以实现在野外实时获取厘米级精度的定位数据,一定程度上省去了事后解算的麻烦。相应的&…

macos端文件夹快速访问工具 Default Folder X 最新for mac

Default Folder X 是一款实用的工具,提供了许多增强功能和快捷方式,使用户能够更高效地浏览和管理文件。它的快速导航、增强的文件对话框、自定义设置和快捷键等功能,可以大大提升用户的工作效率和文件管理体验。 快速导航和访问:…

steam游戏找不到steam_api64.dll,分享三个有效的解决方法

在现代科技发展的时代,游戏已经成为了许多人生活中不可或缺的一部分。而Steam作为全球最大的数字发行平台之一,拥有着庞大的游戏库和活跃的用户群体。然而,在使用Steam时,有些用户可能会遇到Steam_api64.dll丢失的问题&#xff0c…

QT mysql 数据库线程池 与数据库操作封装

最近事情比较多很久没有写学习笔记了,数据库线程池, 数据库封装,虽说数据库操作有很多不需要写sql 的,ORM 封装的方式去操作数据库。但是从业这些年一直是自己动手写sql ,还是改不了这个习惯。不说了直接上代码。 数据…

想打造私域流量帝国?先解决这4个难题!

一、谁是你的目标用户 1. 清晰界定目标用户:确定你的产品或服务主要面向的用户群体,如年龄段、性别、职业等特征。 2. 确定最有购买力的用户群体:分析哪个用户群体在购买你的产品或服务时更容易乐于支付,并将其作为重点关注对象。…

skywalking中gateway的拓扑图没有出现

背景: 刚开始的时候gateway没有出现,后来百度说添加插件的jar包, apm-spring-cloud-gateway-2.1.x-plugin-8.15.0.jar apm-spring-webflux-5.x-plugin-8.15.0.jar 然后解决了gateway节点出来了, 但是:拓扑图却是User指…

我们对凌鲨的一次重构

在10月我们对凌鲨进行了一次重构,把所有鸡肋的功能都删除了。 新版本界面 老版本界面 我们干掉的功能 移除沟通频道功能 沟通频道类似slack功能,用于团队沟通。由于国内有大量的沟通软件,比如企业微信,飞书,钉钉等。…

用HALCON标定助手对相机进行标定

任务要求: 已知相机镜头焦距f为8mm,相机单个CCD像素在水平和竖直两个方向上的尺寸均为3.75微米,相机为普通透光镜头和面阵相机,对相机进行标定,测量相机的内外参数。 操作步骤: 1. 在HALCON中运行gen_ca…

实时数据备份实践inotify和rsync联动

目录 一、实时数据备份 1.实时数据备份 2.定时任务周期性的数据备份 3.实时数据备份 4.Inotify机制 二、实践 1.实时复制环境准备 2.实时复制概念 3.InofityRsync实施复制实战 4.配置好rsync守护进程 5.检查linux是否支持inotify 6.安装inotyify--tools 7.inotify…

易点易动设备管理系统:提升企业设备巡检效率的最佳选择

在现代企业运营中,设备管理扮演着至关重要的角色。设备巡检旨在确保设备的正常运行和及时维护,以确保生产线的顺畅运行和业务的高效执行。然而,传统的设备巡检方法常常效率低下、耗时费力。针对这一问题,易点易动设备管理系统应运…

window文件夹下python脚本实现批量删除无法预览的图片

你是否遇到过下载的图片会发现有些图片会无法预览情况? 有几种原因可能导致一些图片在预览时无法正常显示: 损坏的图片文件: 图片文件可能损坏或者部分损坏,导致无法被正常解析和预览。这种情况可能是因为文件在传输过程中损坏、…

鸿蒙原生应用/元服务开发-AGC分发如何配置版本信息(下)

12.根据《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,自2023年9月初起,在中国大陆地区提供互联网信息服务的APP开发者,需要依法履行APP备案手续,并通过APP分发平台的备案信息核验。 对于2023年9月7日后在AGC新上…

【19年扬大真题】已知a数组int a[ ]={1,2,3,4,5,6,7,8,9,10},编写程序,求a数组中偶数的个数和偶数的平均值

【18年扬大真题】 已知a数组int a[ ]{1,2,3,4,5,6,7,8,9,10}&#xff0c;编写程序&#xff0c;求a数组中偶数的个数和偶数的平均值 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int os 0;//偶数个数int sum 0;//偶数和float ave 0;//偶数平均值for (int i 0;i <…

不可错过的5款在线UI设计工具,助你事半功倍!

在当今的 UI 设计领域&#xff0c;如果没有合适的 UI 设计工具&#xff0c;无论你的创作能力有多强&#xff0c;你的工作都会受到限制&#xff0c;但许多软件需要会员使用&#xff0c;这不适合新设计师进入工作场所&#xff0c;那么有在线 UI 设计工具吗&#xff1f;关于这个问…

2023 年戴森设计大奖得主是谁?给大楼降温、争取救援机会

2023 年戴森设计大奖得主是谁&#xff1f;给大楼降温、争取救援机会 ​编辑拉风的极客2023/11/22 摘要 当今社会除了持续不断对科技创新保持注目&#xff0c;还有很多年轻发明家为了实际场景的难题提供解决方案。 11 月 15 日&#xff0c;2023 年戴森设计大奖国际大奖名单正…

【20年扬大真题】编写程序,功能是从键盘输入若干4位数字学号,然后输出学号中百位数字是3的学号 (输入0时结束循环)

【20年扬大真题】 编写程序&#xff0c;功能是从键盘输入若干4位数字学号&#xff0c;然后输出学号中百位数字是3的学号 &#xff08;输入0时结束循环&#xff09; #include<stdio.h> #define MaxSize 20 int BaiWei3(int x) {x x / 100;if (x % 10 3) {return 1;}els…

Python实现四个组成不相同且无重复的三位数

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 1.题目&#xff1a;有四个数字&#xff1a;1、2、3、4&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff1f;各是多少&#xff1f; for i in range(1,…

Request 爬虫的 SSL 连接问题深度解析

SSL 连接简介 SSL&#xff08;Secure Sockets Layer&#xff09;是一种用于确保网络通信安全性的加密协议&#xff0c;广泛应用于互联网上的数据传输。在数据爬取过程中&#xff0c;爬虫需要与使用 HTTPS 协议的网站进行通信&#xff0c;这就牵涉到了 SSL 连接。本文将深入研究…

5款可以免费使用的PS软件分享

AdobePhotoshop&#xff0c;简称“PS它是一种由Adobesystems开发和发行的图像处理软件&#xff0c;Photoshop主要处理由像素组成的数字图像。使用其大量的编辑和绘图工具&#xff0c;可以有效地编辑图片。 PS在图像、图形、文字、视频、出版等方面都有很多功能。Adobe支持Windo…

探索数字孪生的潜力:五个最有前景的行业

数字孪生技术正在引领一场新的工业革命&#xff0c;其潜力正在被全球范围内的行业所认识和利用。在未来&#xff0c;数字孪生技术将在许多行业中发挥重要作用&#xff0c;本文带大家共同解析未来数字孪生技术五个最有发展前景的行业。 1.制造业 数字孪生技术可以帮助制造商模…