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

news2024/11/16 9:22:43

一、前期准备

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

  一台主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(增备)持久化功能在下一台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上操作内容,完成哨兵操作

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

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

相关文章

Easy TCP Analysis让TCP数据包分析变得跟看聊天记录一样简单

网络交互是几乎所有产品不可或缺的功能&#xff0c;涵盖接口请求响应、消息实时推送&#xff0c;以及文件上传下载等各种场景。这种交互不仅存在于客户端与服务器之间&#xff0c;也存在于服务端微服务之间的通信。 网络方面出问题不像进程内程序异常有异常堆栈&#xff0c;能…

文件实时同步工具PanguFlow

今天推荐一款Windows服务器文件实时同步工具PanguFlow,如果有需要做服务器文件实时冗余灾备的老铁&#xff0c;一定不能错过&#xff0c;错过可能就是一生。这款软件不同于其他普通文件同步工具通过比对源和目标的差异来同步文件&#xff0c;而是实时监控源的增量变化&#xff…

在 K8s 上跑腾讯云 Serverless 函数,打破传统方式造就新变革

目录 目录 前言 Serverless 和 K8s 的优势 1、关于Serverless 函数的特点 2、K8s 的特点 腾讯云 Serverless 函数在 K8s 上的应用对企业服务的影响 1、弹性扩展和高可用性 2、成本优化和资源利用 3、简化部署和管理 拓展&#xff1a;腾讯云云函数 SCF on K8s 番外篇…

蓝桥杯 - 玩具蛇

解题思路&#xff1a; dfs public class Main {static final int N 4;static int[][] visited new int[N][N];static int count;public static void main(String[] args) {for (int i 0; i < N; i) { //16种位置开始的可能for (int j 0; j < N; j) {dfs(i, j, 1);}…

Linux - mac 装 mutipass 获取 ubuntu

mutipass &#xff1a;https://multipass.run/docs/mac-tutorial mutipass list mutipass launch --name myname mutipass shell myname 获取 root权限&#xff1a; sudo su

一开始我只是接单试试水而已,后来我居然财富自由了!

一开始我只是抱着试一试的心态&#xff0c;浅浅的尝试了一下网上接单&#xff0c;没办法&#xff0c;这风太大了&#xff01;网上个个儿说的神乎其神的&#xff0c;尤其是动不动就几十W&#xff0c;没办法&#xff0c;我眼红啦&#xff01;赚钱嘛&#xff0c;不丢人&#xff01…

Nginx配置之localhost和反向代理

文章目录 第一步、查看安装位置和配置文件第二步、web服务器设置第三步、localhost 指令第四步、设置反向代理 清明假期&#xff0c;在家练习Nginx配置&#xff0c;在前期【 linux环境下安装配置nginx代理服务器】已经完成nginx环境搭建&#xff0c;本期主要实践web服务器&…

TopOn x Google Admob 自动创建广告源功能上线,支持一键添加广告单元 | TopOn产品速递

合作官宣 TopOn 正式成为亚太地区首家支持自动创建Admob bidding广告源的聚合平台。目前&#xff0c;在TopOn后台添加Admob广告平台&#xff0c;您只需要重新授权Google账号&#xff0c;即可开通自动创建功能。此前&#xff0c;TopOn 已在24年2月6日官方聚合支持Google biddin…

今年过去了多少天?(switch)

//今年已经过去了几天&#xff1f; #include <stdio.h> int monthday(int year,int month){switch(month){case 1:return 31;case 2:if ((year % 4 0 && year % 100 ! 0)||year % 400 0){return 29;}else{return 28;}break;case 3:return 31;case 4:return 30;…

卫星遥感监测森林植被健康度

随着地球环境的日益恶化&#xff0c;森林作为地球上最重要的生态系统之一&#xff0c;其变化对全球气候、生态环境和人类社会经济发展产生深远影响。因此&#xff0c;及时、准确地监测森林变化对于保护生态环境、维护生态平衡、推进可持续发展具有重要意义。卫星遥感影像技术因…

MXNet的下载安装及问题处理

1、MXNet介绍&#xff1a; MXNet是一个开源的深度学习框架&#xff0c;以其灵活性和效率著称&#xff0c;支持多种编程接口&#xff0c;包括Python、C、R、Julia、Scala等。MXNet支持大规模分布式训练&#xff0c;同时兼顾CPU和GPU的计算资源&#xff0c;尤其擅长于模型并行和数…

人工智能 - 服务于谁?

人工智能服务于谁&#xff1f; 人工智能服务于生存&#xff0c;其最终就是服务于战争&#xff08;热战、技术战、经济战&#xff09; 反正就是为了活着而战的决策。 既然人工智能所有结果&#xff0c;来自大数据的分挖掘&#xff08;分析&#xff09;也就是数据的应用&#x…

Python开发笔试、面试及简历复盘:全面指南

Python开发面试总结复盘 最近跳槽了&#xff0c;趁着清明假期&#xff0c;把自己最近的跳槽面试经历做个总结复盘一下。 时间准备:23年12月底&#xff0c;总计两个月的准备&#xff0c;包括简历修改、笔试准备以及项目和话术的知识储备。 开始时间:24年2月底&#xff0c;总计两…

【LeetCode】排序数组——不一样的方式实现快排

目录 题目链接 颜色分类 算法原理 代码实现 排序数组 算法原理 代码实现 最小的k个数 算法原理 代码实现 题目链接 LeetCode链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; LeetCode链接&#xff1a;912. 排序数组 - 力扣&#xff08;L…

零基础如何闯入IT的神秘大门?

前言 随着信息技术的飞速发展&#xff0c;IT行业成为了许多有志之士梦寐以求的职业领域。但对于零基础的人来说&#xff0c;如何成功进入这个行业却是一个不小的挑战。下面&#xff0c;我将结合自身的C语言专业知识&#xff0c;为大家详细阐述一条可行的学习路径&#xff0c;并…

【MySQL】游标和触发器

一、游标 1.1 什么是游标 1、使用背景 在我们使用update或者delete操作数据时&#xff0c;一般都会根据条件语句查询出很多条记录组成的数据集&#xff0c;然后一次性批量操作 假设我们想要对这个结果集中的数据 一行一行的进行操作&#xff0c;比如某个条件满足后&#xff…

Redis安装及基本类型详解

目录 一、Redis概念 二、Redis的应用场景 三、Redis的特点 四、redis访问数据为什么快&#xff1f; 五、Ubuntu下安装redis 五、全局命令(针对任意类型value都可使用) 1、keys &#xff08;1&#xff09;keys * &#xff08;2&#xff09;keys pattern 2、exists 3、…

从0到1搭建文档库——sphinx + git + read the docs

sphinx git read the docs 目录 一、sphinx 1 sphinx的安装 2 本地构建文件框架 1&#xff09;创建基本框架&#xff08;生成index.rst &#xff1b;conf.py&#xff09; conf.py默认内容 index.rst默认内容 2&#xff09;生成页面&#xff08;Windows系统下&#xf…

uniapp vue2 时钟 循环定时器

效果展示&#xff1a; 时钟 写在前面&#xff1a;vue2有this指向&#xff0c;没有箭头函数 实验操作&#xff1a;封装一个时钟组件 uniapp vue2 封装一个时钟组件 核心代码&#xff1a; this指向的错误代码&#xff0c;在下&#xff1a; start() { this.myTimer setInterval(…

11.内建函数对象_算数、关系、逻辑仿函数

文章目录 算数仿函数代码工程运行结果 关系仿函数代码工程运行结果 逻辑仿函数代码工程运行结果 算数仿函数 需要添加#include<functional>头文件使用 代码工程 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<functional>using namespace…