Lnmp架构-Redis

网站:www.redis.cn

redis 部署

make的时候需要gcc和make  如果在纯净的环境下需要执行此命令

[root@server3 redis-6.2.4]# yum install make gcc -y
 

注释一下这几行

vim /etc/redis/6739.conf

2.Redis主从复制

设置 11 是master 12 13 是slave

在12 上

其他节点以此内推

此时在 11 master 上

slave 角色只能读 没有修改的权限

当在master上

在slave会实现同步

redis高可用 

redis 主从切换

redis 主从原理:基于rdb 快照实现 它和MySQL的二进制日志的差别(数据类型不同)

在执行主从的时候:slave和master要先做一个认证 发起一个同步请求,master会执行一个bgsave(异步模式)/save(阻塞模式),异步模式的时候,bgsave会做一个rdb快照,然后把rdb快照发给slave,slave会做一个动作,清掉slave端所有的数据(flushall),然后slave会再次加载快照,

快照做完之后,还会有变更数据,所以放在缓存里面,然后接下来会用replicationfeedslave()增量函数 一条一条发给slave,然后再给slave端做同步 redis主从基于rdb快照格式出现

redis 主从基于快照rdb快照格式实现

一主多从的架构中 做高可用切换 redis 里自带

2 表示的意思:怎么判断master出故障呢,必须要两个节点说master出故障了 才能发起故障切换

当第一个节点发现master出现故障 会进入一种主观下线状态

当第二个节点发现master出现故障 会再次进入一种主观下线状态

两次的主观下线会触发一次客观下线,这个时候master会开始真正进行主从切换

三个节点就设置为2 两个节点就设置为1

拷贝文件的动作 一定要在启动之前

其它主机直接启动服务,无需更改配置文件

这就是哨兵模式

此时 在开一个终端11 11 此时是master

关闭master

redis集群 会自动切换master

当原来的master再次启动后,会以slave身份加入集群

在切换的时候可能会出现的问题

客户端到master没什么问题,master 到slave端的网络如果出现故障

这个时候就会把master踢出去 选举出新的master  slave接上去

当网络又正常 原来的master 会同步当前集群的配置 把自己变成slave 接入到新的master 这样的话 原来的master上所有数据都会丢失

但是 客户端到master是好的 这个时候 客户端会持续往master里写数据 客户一直在写 但是master到slave出现故障 master就会变为slave 数据就会被清掉

怎么解决呢

必需保证后端有两个slave可以写

添加 min-slave-to-write=2 到配置文件

保证在主从切换的时候 客户端不要给master里面写  如果master发现都连不上两个slave 就不要往里面写入数据了 避免数据丢失

Redis集群

无中心化设计 每个节点都可以接入集群 不管是主从 都可以进行读写 在接入集群之后都可以做调度 做重定向 但是 它的整合度太高了 二次开发成本太高

会在当前的目录里 生成对应的配置文件和数据

这样就创建好了一个集群

查看命令帮助

redis-cli --help

获取集群状态

主从关系的详细信息

redis-cli --cluster 实际就是把总共16384个哈希槽 ,均摊到这三个master 进行存储 每个节点都会分得一定比例的哈希槽,哈希槽就是存数据用的

连接集群

关闭redis实例,集群自动切换

30002的 master 关闭  30005之前是slave 就会接管变成master

此时 数据就会在30005上 数据不会丢失

以上就是 redis 内置的高可用切换

如果再把脚本启动起来 这时候 刚才关闭的30002 就会被再次拉起来

拉起来之后 30002 就是slave

此时 互换了角色

设么么时候会导致这个进群节点不可用

1 这16384这些哈希槽如果不完整集群不可用 

2.同一这个集群的半数master同时挂掉

再启动两个redis实例

ps ax

在线添加集群节点

新添加的节点没有hash槽,角色时是master

添加slave节点

重新迁移hash槽

 删除哪个节点的时候

就得把这个节点上的哈希槽迁徙到别的机器上

要不然就会造成哈希槽不完整 集群就会shutdown

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

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

相关文章

python 深度学习 解决遇到的报错问题4

目录 一、DLL load failed while importing _imaging: 找不到指定的模块 二、Cartopy安装失败 三、simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 四、raise IndexError("single positional indexer is out-of-bounds") 五、T…

QT Creator工具介绍及使用

一、QT的基本概念 QT主要用于图形化界面的开发, QT是基于C编写的一套界面相关的类库,如进程线程库,网络编程的库,数据库操作的库,文件操作的库等。 如何使用这个类库:类库实例化对象(构造函数) --> 学习…

简单了解ICMP协议

目录 一、什么是ICMP协议? 二、ICMP如何工作? 三、ICMP报文格式 四、ICMP的作用 五、ICMP的典型应用 5.1 Ping程序 5.2 Tracert(Traceroute)路径追踪程序 一、什么是ICMP协议? ICMP因特网控制报文协议是一个差错报告机制,…

【【萌新的STM32学习-18 中断的基本概念3】】

萌新的STM32学习-18 中断的基本概念3 EXTI和IO映射的关系 AFIO简介(F1) Alternate Function IO 复用功能IO 主要用于重映射和外部中断映射配置 1.调试IO配置 来自AFIO_MAPR[26:24] , 配置JTAG/SWD的开关状态 (这个我们并不用太过深刻的关注&…

腾讯云网站备案详细流程_审核时间说明

腾讯云网站备案流程先填写基础信息、主体信息和网站信息,然后提交备案后等待腾讯云初审,初审通过后进行短信核验,最后等待各省管局审核,前面腾讯云初审时间1到2天左右,最长时间是等待管局审核时间,网站备案…

【易售小程序项目】修改“我的”界面前端实现;查看、重新编辑、下架自己发布的商品【后端基于若依管理系统开发】

文章目录 “我的”界面修改效果界面实现界面整体代码 查看已发布商品界面效果商品数据表后端上架、下架商品ControllerMapper 界面整体代码back方法 编辑商品、商品发布、保存草稿后端商品校验方法Controller 页面整体代码 “我的”界面修改 效果 界面实现 界面的实现使用了一…

DevOps理念:开发与运维的融合

在现代软件开发领域,DevOps 不仅仅是一个流行的词汇,更是一种文化、一种哲学和一种方法论。DevOps 的核心理念是通过开发和运维之间的紧密合作,实现快速交付、高质量和持续创新。本文将深入探讨 DevOps 文化的重要性、原则以及如何在团队中实…

Python入门教程 - 基本语法 (一)

目录 一、注释 二、Python的六种数据类型 三、字符串、数字 控制台输出练习 四、变量及基本运算 五、type()语句查看数据的类型 六、字符串的3种不同定义方式 七、数据类型之间的转换 八、标识符命名规则规范 九、算数运算符 十、赋值运算符 十一、字符串扩展 11.1…

Ubuntu20.04下安装搜狗输入法Linux版

Ubuntu20.04下安装搜狗输入法Linux版 参考搜狗输入法的官网安装指南; 第一步:打开搜狗输入法官网; https://shurufa.sogou.com/ 点击X86_64后将会自动跳转到搜狗输入法的安装指南中; 安装指南 Ubuntu搜狗输入法安装指南 搜狗…

iOS开发Swift-7-得分,问题序号,约束对象,提示框,类方法与静态方法-趣味问答App

1.根据用户回答计算得分 ViewController.swift: import UIKitclass ViewController: UIViewController {var questionIndex 0var score 0IBOutlet weak var questionLabel: UILabel!IBOutlet weak var scoreLabel: UILabel!override func viewDidLoad() {super.viewDidLoad()…

如何停止一个正在运行的线程

使用共享变量的方式 在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号,通知中断线程的执行。 使用interrupt方法终止线程 如果一个线程由于等待某些事件的发生而被阻塞,又该怎样…

Vavido IP核Independent Clocks Block RAM FIFO简述

文章目录 1 FIFO(先入先出)1.1 概念1.2 应用场景1.3 FIFO信号1.4 FIFO读写时序1.4.1 FIFO读时序1.4.2 FIFO写时序 参考 1 FIFO(先入先出) 1.1 概念 FIFO(First in First out)即先入先出队列,是…

2023年高教社杯 国赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…

2023应届生java面试紧张失误之一:CAS口误说成开心锁-笑坏面试官

源于:XX网,如果冒犯,表示歉意 面试官:什么是CAS 我:这个简单,开心锁 面试官:WTF? 我:一脸自信,对,就是这个 面试官:哈哈大笑&#xff…

React原理 - React New Component Lifecycle

目录 扩展学习资料 React New Component Lifecycle【新生命周期】 React 组件新生命周期详解 React组件老生命周期 v15.x 为什么Fiber Reconciler要有新的生命周期函数呢? 新的组件生命周期 getDerivedStateFromProps 挂载阶段 更新阶段 卸载阶段 异常捕…

基于grpc从零开始搭建一个准生产分布式应用(6) - 02 - MapStruct数据转换

一、基础转换 1.1、基础类型 基本类型、包装类、BigDecimal转String默认使用DecimalFormat格式化,Mapping#numberFormat可以指定格式,Date转String默认使用SimpleDateFormat格式化,如默认格式不符要求,可以用,Mapping…

53 个 CSS 特效 3(完)

53 个 CSS 特效 3(完) 前两篇地址: 53 个 CSS 特效 153 个 CSS 特效 2 这里是第 33 到 53 个,很多内容都挺重复的,所以这里解释没之前的细,如果漏了一些之前的笔记会补一下,写过的就会跳过。…

Error: PostCSS plugin autoprefixer requires PostCSS 8 问题解决办法

报错:Error: PostCSS plugin autoprefixer requires PostCSS 8 原因:autoprefixer版本过高 解决方案: 降低autoprefixer版本 执行:npm i postcss-loader autoprefixer8.0.0

【配置环境】Visual Studio 配置 OpenCV

目录 一,环境 二,下载和配置 OpenCV 三,创建一个 Visual Studio 项目 四,配置 Visual Studio 项目 五,编写并编译 OpenCV 程序 六,解决CMake编译OpenCV报的错误 一,环境 Windows 11 家庭中…

Super Resolve Dynamic Scene from Continuous Spike Streams论文笔记

摘要 近期,脉冲相机在记录高动态场景中展示了其优越的潜力。不像传统相机将一个曝光时间内的视觉信息进行压缩成像,脉冲相机连续地输出二的脉冲流来记录动态场景,因此拥有极高的时间分辨率。而现有的脉冲相机重建方法主要集中在重建和脉冲相…