redis主备切换,哨兵模式,缓存穿透、缓存击穿、缓存雪崩问题
主备切换
主从复制指的是把一台Redis服务器的数据复制到其他Redis服务器上,前者称为主节点Master,后者称为从节点Slave,只能从Master单向复制到Slave,一般Master以写操作为主,Slave以读操作为主,实现读写分离。
作用
数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
命令
slaveof host port 将当前服务器转变为指定服务器的从属服务器。如果已是slave则停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。SLAVEOF NO ONE将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
info [section] INFO命令以一种易于理解和阅读的格式,返回关于Redis服务器的各种信息和统计数值。通过给定可选的参数 section ,可以让命令只返回某一部分的信息:
配置
以单机多服务为例(正常是多机多服务,然我只有一台服务器)
首先每个redis客户端都默认是主机,可以通过info replication命令查看
那么我们现在要同时开三个客户端,模拟一主两从,所以要修改配置:
修改端口号
修改pid名字
修改log名字
修改rdb名字
设置主机连接(可不选,用命令行)
先拷贝两份配置文件作为从机配置,主机可使用默认。
哨兵模式
上面的80上位和嵌套主从都是我们手动命令行输入的,其目的就是避免主机宕机后写操作的空窗期,这些都是需要人工干预。
哨兵Sentinel会作为一个独立的进程独立运行,其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis服务器。
如果哨兵检测到主机下线,则会选一个从机「上位」(自动故障迁移)成为新的主机。如果原主机上线,原主机将变成新主机的从机。其原理是通过发布订阅模式通知其他服务器,修改配置文件,从而切换主机。
如果哨兵宕机怎么办?可以使用多哨兵模式
主观下线(Subjectively Down, 简称 SDOWN)指的是单个哨兵实例对服务器做出的下线判断。
客观下线(Objectively Down, 简称 ODOWN)指的是多个哨兵实例在对同一个服务器做出主观下线判断, 并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断。
当主机客观下线后,哨兵会投票出新的主机(具体算法略 ),进行自动故障迁移(failover),通过发布订阅通知其他服务器切换主机。
多哨兵模式,配置不同端口的配置文件来开启多个哨兵客户端,然后照葫芦画瓢即可
相关文章:
redis主备切换,哨兵模式,缓存穿透、缓存击穿、缓存雪崩问题
主备切换 主从复制指的是把一台Redis服务器的数据复制到其他Redis服务器上,前者称为主节点Master,后者称为从节点Slave,只能从Master单向复制到Slave,一般Master以写操作为主,Slave以读操作为主,实现读写分…...
2023山东icpc省赛总结
距离比赛结束已经一天多了,现在的感觉就是三个字:意难平。 这是我们第一次打现场赛,去之前真的是很激动。因为我们比赛前做了很多其他省的省赛模拟,也做了几套今年别的省的题目,做完会去搜题解,会看到别人写…...
linux0.12-12-fs
[606页] 第12章 文件系统 606–12-1-总体功能 607–12-1-1-MINIX文件系统 611–12-1-2-文件类型、属性和目录项 615–12-1-3-高速缓冲区 616–12-1-4-文件系统底层函数 616–12-1-5-文件中数据的访问操作 618–12-1-6-文件和目录管理系统调用 619–12-1-7-360KB软盘中文件系统…...
快速入门SpringMVC 学习
目录 SpringMVC 定义 MVC定义 创建SpringMVC项目 SpringMVC掌握功能 一、连接功能 RequestMapping(请求映射) GetMapping 和 PostMapping 二、获取参数功能 传递单个参数/多个参数 注意点: RequestParam(前后端参数映射) 前后端参数映射 RequestParam特…...
leetcode96--不同的二叉搜索树[java]
不同的二叉搜索树 leetcode 96 题 不同的二叉搜索树题目描述暴力递归解题思路代码演示执行效率 递归 缓存解题思路代码演示执行效率 动态规划专题 leetcode 96 题 不同的二叉搜索树 原题链接: 难度—中等 https://leetcode.cn/problems/unique-binary-search-trees/ 题目描述 …...
【Spring 项目的创建和使用】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 创建 Spring 项目 2. 创建一个 普通 Maven…...
数据类型.
数据类型 数据类型分类 数值类型 tinyint类型 数值越界测试: mysql> create table tt1(num tinyint); Query OK, 0 rows affected (0.02 sec)mysql> insert into tt1 values(1); Query OK, 1 row affected (0.00 sec)mysql> insert into tt1 values(128…...
深入了解JavaScript中的Promise
在JavaScript中,异步编程是必不可少的。过去,我们通常使用回调函数来处理异步操作,但回调地狱(callback hell)和复杂的错误处理使得代码难以维护。为了解决这些问题,ES6引入了Promise,它是一种更…...
Solidity基础六
生活本来就是平凡琐碎的,哪有那么多惊天动地的大事,快乐的秘诀就是不管对大事小事都要保持热情 目录 一、Solidity的特殊变量(全局) 二、Solidity的不可变量 immutable的赋值方式 三、Solidity的事件与日志 事件和日志加深理解 四、Solidity的异常…...
自学网络安全解决问题方法
自学网络安全很容易学着学着就迷茫了,找到源头问题,解决它就可以了,所以首先咱们聊聊,学习网络安全方向通常会有哪些问题,看到后面有惊喜哦 1、打基础时间太长 学基础花费很长时间,光语言都有几门…...
Java之旅(七)
Java 异常 Java异常(Exception)是在程序运行过程中出现错误或异常情况时,由程序自动抛出,导致程序无法正常运行,用于向上层调用程序传递错误信息或中断程序执行的一种机制。 异常与错误不同,错误是由于程…...
测试报告模板二
项目名称 系统测试报告 平台测试小组 2023年x月xx日 文档信息 文档名称: 作者:...
C语句概述
1 、 C 语句分类: ①控制语句:二个分支语句( if-else 、 switch ),三个循环语句( for 、 while 、 do - while ),四个转移语句( continue 、 break 、 goto 、 return…...
C++ [STL之vector模拟实现]
本文已收录至《C语言和高级数据结构》专栏! 作者:ARMCSKGT STL之vector模拟实现 前言正文空间结构默认成员函数构造函数拷贝构造函数赋值重载析构函数关于数据拷贝问题 迭代器容量操作查询容量容量操作 数据访问下标访问头尾数据访问 数据增删尾插尾删重…...
【算法竞赛进阶指南】141.周期 题解 KMP 最小循环节
题目描述 一个字符串的前缀是从第一个字符开始的连续若干个字符,例如 abaab 共有 5 5 5 个前缀,分别是 a,ab,aba,abaa,abaab。 我们希望知道一个 N N N 位字符串 S S S 的前缀是否具有循环节。 换言之…...
【Springboot 入门培训 】#19 Spring Boot 组件扫描与bean生命周期
目录 1 什么是组件扫描2 何时使用组件扫描3 扫描整个包basePackages与 includeFilters4 Spring boot 的 Bean 生命周期4.1 生命周期4.2 Bean 生命周期4.3 周期各个阶段 首先,我想先为你介绍一下“Spring”,这是一个开放源代码的设计模式解决方案和轻量级…...
Linux printf 函数输出问题
printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满足,才会输出到屏幕。 1) 缓冲区满 2) 强制刷新缓冲区 fflush 3) 程序结束时 1 #include<stdio.h>2 #include<st…...
皮卡丘Unsafe Fileupload
1.不安全的文件上传漏洞概述 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行…...
最优化简明版(上)
引言 本文简单地介绍一些凸优化(Convex Optimization)的基础知识,可能不会有很多证明推导,目的是能快速应用到机器学习问题上。 凸集 直线与线段 设 x 1 ≠ x 2 x_1 \neq x_2 x1x2为 R n \Bbb R^n Rn空间中的两个点,那么具有下列形…...
MySQL的一些介绍
1. SQL的select语句完整的执行顺序 SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算&am…...
HarmonyOS 6 Chip 组件:不显示后缀图标使用文档
文章目录概述源码隐藏后缀图标核心实现原理1. 核心控制字段2. 双重隐藏条件3. 冗余回调说明组件配置解析总结概述 Chip组件后缀图标包含两类:系统默认关闭图标、自定义suffixIcon后缀图标。 通过组件配置项可统一关闭后缀图标展示,实现仅前缀图标文字的…...
验证回文串【双指针、字符串】
力扣:https://leetcode.cn/problems/valid-palindrome/description/?envTypestudy-plan-v2&envIdtop-interview-150 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串…...
UGUI三大Layout Group原理与避坑指南:Vertical、Horizontal、Grid布局本质解析
1. 为什么这三个Layout Group是UGUI里最常被误用、也最容易“看似正常实则埋雷”的组件?在Unity项目组做技术分享时,我常问新人一个问题:“你第一次用Vertical Layout Group,是不是拖进去一个空GameObject,加个组件&am…...
全链路追踪:OpenTelemetry与Jaeger实战
全链路追踪:OpenTelemetry与Jaeger实战 大家好,我是欧阳瑞(Rich Own)。今天想和大家聊聊全链路追踪这个重要话题。作为一个全栈开发者,在微服务架构中,全链路追踪是定位问题和性能优化的关键工具。今天就来…...
别再硬啃旧SDK了!用Unity 2021.3 + OpenXR搞定Vive Pro Eye眼动数据采集(附避坑指南)
现代VR眼动追踪开发指南:Unity 2021.3与OpenXR实战 在VR技术快速迭代的今天,眼动追踪已成为提升沉浸感的关键技术。Vive Pro Eye作为行业标杆设备,其开发方式正经历从私有SDK到开放标准的重大转变。本文将带你跨越技术代沟,掌握基…...
【ElevenLabs高棉文语音实战指南】:2024年唯一经实测支持Khmer TTS的AI语音方案,附5步接入避坑清单
更多请点击: https://codechina.net 第一章:【ElevenLabs高棉文语音实战指南】:2024年唯一经实测支持Khmer TTS的AI语音方案,附5步接入避坑清单 为什么ElevenLabs是当前唯一可行的Khmer TTS方案 截至2024年第三季度,…...
98的堂邀请码色花的堂邀请码
兑换不易,可以联系邮箱sht98sht163.com,出邀请。...
RT-Trace升级:集成GDB Server与一键烧录,打造嵌入式开发调试平台
1. 项目概述:嵌入式开发的“瑞士军刀”再进化如果你是一名嵌入式开发者,最近可能被一个词刷屏了——RT-Trace。这已经不是它第一次带来惊喜了。最初,它以非侵入式的实时追踪和性能分析能力,在RT-Thread社区里掀起了一阵热潮&#…...
选对服务商事半功倍!2026 全国头部综合型设计搭建会展服务商核心优势解读
本文详解 2026 年全国各大会展中心全国头部综合型设计搭建会展服务商的核心优势与价值,核心定义为全国头部综合型设计搭建会展服务商是指具备全产业链整合能力、全国化服务网络、丰富的行业经验与强大的技术实力,能够为客户提供一站式、全流程会展设计搭…...
如何快速掌握《鸣潮》游戏模组开发:专业逆向工程与AES加密技术完整指南
如何快速掌握《鸣潮》游戏模组开发:专业逆向工程与AES加密技术完整指南 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod WuWa-Mod是一个专门为热门游戏《鸣潮》(Wuthering Waves…...
