Redis性能管理及集群三种模式(一)

一、前期准备

  至少准备三台服务器为主从复制、哨兵的实验做准备

  一台主redis、两台从redis

二、Redis性能管理

  2.1 查看Redis内存使用

    查看Redis内存使用——info memory

  2.2 内存使用率

  • 1<内存碎片<1.5表示合理的
  • 内存碎片大于>1.5,需要输入shutdown save命令,让Redis数据库执行保存操作并关闭redis服务
  • 内存碎片<1,redis内存配置超出物理内存,需要增加可用物理内存

  2.3 内回收key

    内存清理策略,保证合理分配redis有限的内存资源

    当达到设置的最大阈值时,需选择一种key的回收策略,默认情况下回收策略是禁止删除

    配置文件中修改maxmemory-policy属性值:

    vim /etc/redis/6379.conf

    ------598------

  • maxmemory-policy noenviction
  • volatile-lru:使用LRU算法已从设置过期时间的数据集合中淘汰数据(移除最近最少使用的key,针对设置了TTL的key)
  • volatile-ttl:从已设置过期时间的数据集合中挑选即将过期的数据淘汰(移除最近过期的key)
  • volatitle-random:从已设置过期时间的数据集合中随机挑选数据淘汰(在设置了TTL的key里随机移除)
  • allkeys-lru:使用LRU算法从所有数据集合淘汰数据(移除最少使用的key,针对所有的key)
  • allkeys-random:从数据集合中任意选择数据淘汰(随机移除key)
  • noenviction:禁止淘汰数据(不删除直到写满时报错)

  2.4 缓存的穿透、击穿和雪崩

  • 穿透:黑客或者其他非正常用户频繁进行很多非正常的url访问,使得redis查询不到数据库
  • 击穿:redis某个key过期了,大量访问这个key(热门key)
  • 雪崩:redis某个key过期了,大量正常访问某个key

三、主从复制

  3.1 主从复制的原理

  1. 从服务器向主服务器发送sync同步数据请求
  2. 主redis会fork一个子进程,然后会产生RDB文件(完全备份的文件)的过程,客户端还在持续地写入redis
  3. RDB文件持久化完成后,主redis会将RDB文件和缓存起来的命令推送给从服务器
  4. 复制、推送完后,主redis会持续地同步操作命令,会利用AOF(增备)持久化功能
  5. 在下一台redis接入主从复制之前会持续地利用AOF的方式来同步数据给从服务器,当出现故障时通过投票选择新的master并将所有slave连接新的master。整个哨兵集群不得少于3个节点。

  3.2 主从复制的部署

  3.2.1 首先关闭防火墙

  3.2.2 重命名

  3.2.2.1 为主服务器重命名

  3.2.2.2 为从服务器1重命名

  3.2.2.3 为从服务器2重命名

  3.2.3 编辑hosts配置文件

  3.2.3.1 为主服务器编辑hosts配置文件

  3.2.3.2 为从服务器1编辑hosts配置文件

  3.2.3.3 为从服务器2编辑配置hosts配置文件

  3.2.4 为从服务器1远程拷贝文件

   3.2.5 编译安装

  3.2.6 为服务器2安装gcc、gcc-c++

  3.2.7 在从服务器2上编译安装

  3.2.8 切换到从服务1下运行脚本文件

  3.2.9 切换到从服务2下运行脚本文件

  3.2.10 在主服务器上编辑配置文件并重新启动

  3.2.11 在从服务器1上编辑配置文件并重新启动

  3.2.12 在从服务器2上编辑配置文件并重新启动

  3.2.13 在主服务上查看日志

  3.2.14 在主服务器上显示redis信息

  3.2.15 完成主从复制操作

四、 redis哨兵模式

  4.1 核心功能

    在主从复制的基础上,引入了主节点的自动故障转移

  4.2 哨兵模式的定义

    哨兵模式是一个分布式系统,用于主从结构中的每台服务器进行监测

  4.3 哨兵的组成

  • 哨兵节点:哨兵系统由一个或多个哨兵节点组成,哨兵节点是特殊的redis节点,不存储数据
  • 数据节点:主节点和从节点都是数据节点

  4.4 哨兵模式的原理

  1. 哨兵对主从复制集群进行监控,监控对象“所有redis的数据节点”
  2. 哨兵与哨兵之间相互监控,监控的对象是哨兵彼此

    它的监测目的是:

  1. 检测彼此的存活状态
  2. 实现自动故障切换

  4.5 故障切换原理

  1. 当master挂掉,哨兵会及时发现,发现之后进行投票机制选举出一个新的master服务器(一定是基数)
  2. 完成slave向master的主从切换
  3. 完成其他的从服务器对新的master配置

  4.6 哨兵的实验部署

  4.6.1 为主从服务器进行操作(一)

    进入redis下,编辑sentinel配置文件,并且在后台运行

  4.6.2 为主从服务器进行操作(二)

    显示信息内容

  4.6.3 在主服务器上显示内容

  4.6.4 同时在主服务器和从服务器1上操作内容,完成哨兵操作

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

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

相关文章

ES学习日记(十)-------Java操作ES之连接客户端

Elasticsearch有两种连接方式: transport、rest。transport 通过TCP方式访问ES(只支持iava)&#xff0c;rest 方式通过http API 访问ES(没有语言限制)。 ES官方建议使用Iest 方式&#xff0c;transport 在7.8 版本中不建议使用&#xff0c;在8.x的版本中废弃。你可以用Java客户…

小白水平理解面试经典题目1431. Kids With the Greatest Number of Candies【Array类】

1431. 拥有最多糖果的孩子 小白渣翻译 一群孩子手里拿 着不同数目的糖果。你打算额外给每个孩子一些糖果&#xff0c;然后再确定哪些孩子拥有最多的糖果。 给你一个数组 candies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。另给你一个整数 extraCandies &…

MVCC详细总结

简介 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种多版本并发控制机制&#xff0c;主要用于数据库管理系统中&#xff0c;实现对数据库的并发访问。在编程语言中&#xff0c;MVCC可以实现事务内存。 MVCC的特点是读不加锁&#xff0c;读写不冲突。MVC…

基于Unet的BraTS 3d 脑肿瘤医学图像分割,从nii.gz文件中切分出2D图片数据

1、前言 3D图像分割一直是医疗领域的难题&#xff0c;在这方面nnunet已经成为了标杆&#xff0c;不过nnunet教程较少&#xff0c;本人之前跑了好久&#xff0c;一直目录报错、格式报错&#xff0c;反正哪里都是报错等等。并且&#xff0c;nnunet对于硬件的要求很高&#xff0c…

mac、windows 电脑安装使用多个版本的node

我们为啥要安装多个不同版本的node&#xff1f; 开发旧项目时&#xff0c;使用低版本Nodejs。开发新项目时&#xff0c;需使用高版本Node.js。可使用n同时安装多个版本Node.js&#xff0c;并切换到指定版本Node.js。 mac电脑安装 一、全局安装 npm install -g n 二、mac电脑…

内存和网卡压力测试

1.内存压力测试 1.1测试目的 内存压力测试的目的是评估开发板中的内存子系统性能和稳定性&#xff0c;以确保它能够满足特定的应用需求。开发板通常用于嵌入式系统、物联网设备、嵌入式智能家居等场景&#xff0c;这些场景对内存的要求通常比较高。 其内存压力测试的主要目的…

RK3568 RTC驱动实验

RK3568 RTC驱动实验 1. RTC简介 ​ RTC 也就是实时时钟&#xff0c;用于记录当前系统时间&#xff0c;对于 Linux 系统而言时间是非常重要的&#xff0c;使用 Linux 设备的时候也需要查看时间。RTC是Linux的时间系统。 ​ RTC 设备驱动是一个标准的字符设备驱动&#xff0c;…

强大缓存清理工具 NetShred X for Mac激活版

NetShred X for Mac是一款专为Mac用户设计的强大缓存清理工具&#xff0c;旨在帮助用户轻松管理和优化系统性能。这款软件拥有直观易用的界面&#xff0c;即使是初次使用的用户也能快速上手。 软件下载&#xff1a;NetShred X for Mac激活版下载 NetShred X能够深入扫描Mac系统…

【MATLAB】PSO_BP神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 PSO_BP神经网络时序预测算法是一种结合了粒子群优化(PSO)算法和反向传播(BP)神经网络的时序预测方法。它利用了PSO算法的全局搜索能力和BP神经网络的优化能力&#xff0c;能够更准确地预测时序数据。 具体步…

idea maven 打包 内存溢出 报 GC overhead limit exceeded -> [Help 1]

idea 使用maven打包 报GC overhead limit exceeded -> [Help 1] 解决方法&#xff1a; 打开settings -> 点开如同所示 将 vm Options 参数 设为 -Xmx8g

国内首款AI音乐生成大模型「天工SkyMusic」并开启免费邀测;SWE-agent 修复GitHub仓库中的BUG和问题的软件工程代理

✨ 1: 天工SkyMusic 昆仑万维推出国内首款AI音乐生成大模型「天工SkyMusic」并开启免费邀测 天工SkyMusic是由昆仑万维集团开发的一款AI音乐生成工具&#xff0c;它基于先进的「天工3.0」超级大模型构建&#xff0c;代表了目前国内唯一公开可用的AI音乐生成大模型。这款工具专…

JAVAEE之JavaScript(WebAPI)

1.WebAPI 背景知识 JS 分成三个大的部分 ECMAScript: 基础语法部分&#xff08; JS 基础语法主要学的是 ECMAScript, &#xff09; DOM API: 操作页面结构 BOM API: 操作浏览器 WebAPI 就包含了 DOM BOM. 2.API API 是一个更广义的概念 . 而 WebAPI 是一个更具体的…

2024 抖音欢笑中国年(二):AnnieX互动容器创新玩法解析

本文基于24年抖音春节活动业务背景&#xff0c;介绍了字节跨端容器AnnieX在游戏互动套件上的探索&#xff0c;致力于提升容器在游戏互动场景的优化能力。 业务背景 AnnieX作为字节一方游戏统一容器&#xff0c;服务字节内部电商、直播、UG等跨端场景业务。在字节一方游戏互动场…

HarmonyOS NEXT应用开发之MVVM模式

应用通过状态去渲染更新UI是程序设计中相对复杂&#xff0c;但又十分重要的&#xff0c;往往决定了应用程序的性能。程序的状态数据通常包含了数组、对象&#xff0c;或者是嵌套对象组合而成。在这些情况下&#xff0c;ArkUI采取MVVM Model View ViewModel模式&#xff0c;其…

一维数组oj练习(4)

又是一维数组的练习.... 小A的学号在数组中可以看成a[k]&#xff0c;在判断谁大于a[k]。大于的数用sum来统计&#xff0c;最后输出。 #include<cstdio> int a[10010],n,k,sum; int main(){scanf("%d %d",&n,&k);for(int i1;i<n;i){scanf("%d…

鸿蒙OS开发实例:【应用事件打点】

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志&#xff0c;难以识别其中的关键信息。因此&#xff0c;应用开发者需要一种数据打点机制&#xff0c;用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent是在系统层面…

212 基于matlab的双稳态随机共振的算法

基于matlab的双稳态随机共振的算法&#xff0c;分析信噪比随系统参数a,b及乘性噪声和加性噪声的增益变化曲线&#xff0c;60个数据样本可供选择。程序已调通&#xff0c;可直接运行。 212 双稳态随机共振 信噪比增益变化曲线 - 小红书 (xiaohongshu.com)

蓝桥杯第十三届电子类单片机组决赛程序设计

前言 一、决赛题目 1.比赛题目 2.题目解读 二、功能实现 1.关于定时器资源 1&#xff09;超声波和NE555需要的定时器资源 2&#xff09;定时器2 2.单位切换 3.数据长度不足时&#xff0c;高位熄灭 4.AD/DA多通道的处理 5.PWM输出 6.长按功能的实现 三、完整代码演…

基于ssm的轻型卡车零部件销售平台(java项目+文档+源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的轻型卡车零部件销售平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 轻型卡车零部件销售平台…

【VUE+ElementUI】el-table表格固定列el-table__fixed导致滚动条无法拖动

【VUEElementUI】el-table表格固定列el-table__fixed导致滚动条无法拖动 背景 当设置了几个固定列之后&#xff0c;表格无数据时&#xff0c;点击左侧滚动条却被遮挡&#xff0c;原因是el-table__fixed过高导致的 解决 在index.scss中直接加入以下代码即可 /* 设置默认高…