redis主从复制、哨兵模式、集群

news2024/9/21 20:36:42

redis集群 高可用
redis集群的三种模式:
1.主从复制(奇书 3台 一主两从)
2.哨兵模式 (3台 一主两从)
3.cluster (集群 6 333)

主从复制:喝MySQL的主从复制类似,主可以写,写入主的数据通过RDB方式把数据同步到从服务器。从不能更新到主。也是哨兵模式的基础。
缺点:没有办法进行故障自动化恢复,只有主能够写。

哨兵:故障自动化恢复,主从复制完成之后,从服务器变成只读模式
故障切换时,主故障,变成从服务器,主变成从之后,也会进入只读模式。
缺点:从节点一旦故障,读会受到影响。

集群:把每两台服务器作为主从模式,形成一个大的主从的集群
优点:解决了写操作的负载均衡。较为完善的高可用方案
缺点:保证高可用,对数据的完整性要求不高。

主从复制:
主节点和从节点
数据的复制是单向的,由主复制到从
主从复制的流程:

在这里插入图片描述

部署主从复制
192.168.233.11 主
192.168.233.12 从1
192.168.233.13 从2

三台同步操作
#关闭防火墙
systemctl stop firewalld
setenforce 0
#时间同步
yum -y install ntpdate
ntpdate ntp.aliyun.com
date

vim /etc/redis/6379.conf
----70行---
bind 0.0.0.0
----137行---
daemonize yes
----700行---
appendonly yes
#重启服务
/etc/init.d/redis_6379 restart
#查看端口
netstat -anpt | grep 6379

从1

vim /etc/redis/6379.conf
----70行---
bind 0.0.0.0
----287行---
replicaof 192.168.122.11 6379
----700行---
appendonly yes
#重启服务
/etc/init.d/redis_6379 restart
#查看端口
netstat -anpt | grep 6379

从2

vim /etc/redis/6379.conf
----70行---
bind 0.0.0.0
----287行---
replicaof 192.168.122.11 6379
----700行---
appendonly yes
#重启服务
/etc/init.d/redis_6379 restart
#查看端口
netstat -anpt | grep 6379

哨兵模式:
切换方式:不是按照权重来进行切换。
主宕机,其他服务器投票选举Raft算法。选一个离当前时间点更新最快的从变成主

在这里插入图片描述

192.168.233.11 主
192.168.233.12 从1
192.168.233.13 从2

三台同步操作
cd /opt/redis-5.0.7/
vim sentinel.conf
----21行---
#默认端口
port 26379
----17行---
#关闭保护模式
protected-mode no
----26行---
#开启后台运行
deamoniza yes
----37行---
#记录日志
logfile "/var/log/sentinel.log"
----65行---
#数据库的工作目录
dir "/var/lib/redis/6379"
----84行---
#初始化监听都是监听主。监听主服务器的状态
#2就是对应的从服务器的数量以及投票的参与者,参与者要和从服务器的数量一致
#2台服务器投票通过,主才能举行故障转移
sentinel monitor mymaster 192.168.233.11 6379 2
----113行---
#判断服务器宕机的时间周期 30秒  每30秒检测一次
sentinel down-after-milliseconds mymaster 3000
----146行---
#判断故障节点的超时最大时间 180秒
sentinel failover-timeout mymaster 180000

先启动主再启动从

#启动哨兵模式
redis-sentinel sentinel.conf &
#查看哨兵状态
redis-cli -p 26379 info Sentinel
#查看日志文件
tail -f /var/log/sentinel.log
#关闭redis
/etc/init.d/redis_6379 stop
#主故障后会切换到从,从变成主拥有读写权限,主恢复后变成从,变成只读模式
#主恢复,会立刻从RDB文件中获取数据,实现同步
/etc/init.d/redis_6379 start

从1

#启动哨兵模式
redis-sentinel sentinel.conf &
#查看哨兵状态
redis-cli -p 26379 info Sentinel
#查看日志文件
tail -f /var/log/sentinel.log

从2

#启动哨兵模式
redis-sentinel sentinel.conf &
#查看哨兵状态
redis-cli -p 26379 info Sentinel
#查看日志文件
tail -f /var/log/sentinel.log

在这里插入图片描述

集群:
redis3.0之后的分布式存储方案
集群由多个节点组成,redis数据保存在这些节点
集群中的节点分为主和从。
主负责读写已经维护集群的信息
从节点字节进行主节点数据的复制(也可以查)

redis集群的数据分片
在集群概念中,引用的是hash槽的概念
创建了集就有16384个哈希槽
0-16384
3个节点:
主1 0-5460
主2 5461-10922
主3 10923-16383
节点当中,如果主和从全部失败,整个集群都将不可用。

192.168.233.11 主 1
192.168.233.12 主2
192.168.233.13 主3
192.168.233.14 从1
192.168.233.15 从2
192.168.233.16 从3

6台机器同时操作
#关闭防火墙
systemctl stop firewalld
setenforce 0
#时间同步
yum -y install ntpdate
ntpdate ntp.aliyun.com
#验证
date
#进入配置文件
vim /etc/redis/6379.conf
----70行----
#注释掉
#bind 127.0.0.1
----89行----
#关闭保护模式
protecter-mode no
----833行----
#是否允许集群模式开启
cluster-enabled yes
---841---
#取消注释,集群配置文件
cluster-config-file nodes-6379.conf
---847----
#集群超时时间,取消注释
cluster-node-timeout 15000
-----700----
#启用持久化
appendonly yes

#重启
/etc/init.d/redis_6379 restart

redis-cli -h 192.168.233.11 --cluster create 192.168.233.11:6379 192.168.233.14:6379 192.168.233.12:6379 192.168.233.15:6379 192.168.233.13:6379 192.168.233.16:6379 --cluster-replicas 1

192.168.233.11集群的主连接节点 配置节点

–cluster create 192.168.233.11:6379 192.168.233.14:6379 192.168.233.12:6379 192.168.233.15:6379 192.168.233.13:6379 192.168.233.16:6379 前面的是主,后面的是从

–cluster-replicas 1 表示每个主只有一个节点

在这里插入图片描述

在这里插入图片描述

集群:moved不是报错,注释系统提示客户端到指定位置的哈希槽进行读或者写,系统提示啥,就去哪个节点操作即可,这个节点是该节点的主

集群的功能只是满足了高可用和写的负载均衡,不能保证数据的完整性。

#看槽位
cluster slots
#看各个节点的信息
CLUSTER NODES

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

vite创建Vue2项目(配图详细)

参考文章:vite项目生成vue3并引入element-ui vite脚手架生成vue项目及其配置_viteconfig配置-CSDN博客 Vite 默认支持 Vue 3,但你也可以使用 Vite 来搭建 Vue 2 的项目。不过,这需要一些额外的配置,因为 Vue 2 不支持原生的 ES …

【电子通识】什么是SIM卡/eSIM?

什么是SIM卡。 1991年,世界第一张SIM卡被德国捷德公司开发,当时的SIM卡非常大,和银行IC卡一样: SIM卡的全名是“用户识别模块”(Subscriber Identity Module):这块镀金的电路芯片拥有身份识别功…

请大家监督:我要开启Python之路,首要任务最简单的搭建环境

任务说明: 如上图所示,Python稳稳第一,为何?因为Python可以做很多事情,比如:Web开发,网络爬虫,软件开发、数据分析、游戏开发,金融分析,人工智能与机器学习&a…

Java每日面试题(事务相关)(day5)

目录 什么是事务?spring事务的实现方式事务失效的8种情况 什么是事务? 事务是一个操作序列,要么全部执行成功,要么全部执行失败。事务有四个重要特性,称为 ACID 特性: Atomicity(原子性&#x…

从教学到分享,2024精选录屏工具

如果你在公司里承担会议记录的职责,那录屏这项技能你一定要学会。像录屏大师这样的工具可以帮你在远程会议中进行录屏操作,方便你后期整理会议内容。 1.福昕录屏大师 链接直达:https://www.foxitsoftware.cn/REC/ 这款录屏工具提供了多种…

自定义线程池(二)

上节回顾 在上一节当中,已经实现了一个线程池,在本节当中,我们需要添加拒绝策略。这里使用到了策略模式的设计模式,因为拒绝策略是多种的,我们需要将这个权利下放给调用者(由调用者来指定我要采取哪种策略…

代码随想录算法训练营第41天|LeetCode 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III

1. LeetCode 121. 买卖股票的最佳时机 题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ 文章链接:https://programmercarl.com/0121.买卖股票的最佳时机.html#思路 视频链接:https://www.bilibili.com/…

微调基模型

该示例用的谷歌的gemma-2b-it模型 Gemma是Google的一系列轻量级、最先进的开源模型,基于用于创建Gemini模型的相同研究和技术构建。它们是文本到文本、仅解码的大型语言模型,提供英文、开源权重、预训练变体和指令调优变体。Gemma模型非常适合各种文本生…

微软蓝屏事件:网络安全与系统稳定性的深刻反思

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 写在前面 在数字化时代,软件更新已成为…

电测量数据交换DLMS∕COSEM组件第61部分:对象标识系统(OBIS)(下)

GB/T 17215.6的本部分规定了对象标识系统(OBIS)的总体结构并将测量设备中的所有常用数据项映射到其标识代码。OBIS为测量设备中的所有数据都提供唯一的标识符,不仅包括测量值,而且还包括仪表设备的配置或获取测量设备运行状态的抽象数据。 5.抽象对象(A=0) 5.1通用和服…

yolov10来了!用yolov10训练自己的数据集(原理、训练、部署、应用)

一、引言 YOLOv9还没热乎呢,YOLOv10就出来了,太卷了!太快了! 自今年2月YOLOv9发布之后, YOLO(You Only Look Once) 系列的接力棒传到了清华大学研究人员的手上。YOLOv10推出的消息引发了AI界的…

【第七天】TCP三次握手四次挥手 HTTP的keep-Alive和TCP的keepalive

TCP三次握手四次挥手 既然要了解这些,首先我们要清楚一个概念,半连接队列和全连接队列: 在TCP三次握手中,Linux内核会维护两个队列来管理连接请求。 这两个队列的存在是为了处理并发连接请求,确保服务端能够有效管理新…

设计模式17-适配模式

设计模式17-适配模式 动机定义与结构C代码推导总结应用具体应用示例 动机 在软件系统中由于应用环境的变化常常需要将一些现存的对象。放到新的环境中去应用。但是新环境要求的接口是这些现存对象所不满足的。那么这种情况下如何应对这种迁移的变化?如何既能利用现…

《零散知识点 · SpringBoot 整合邮件功能》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

光伏气象仿真系统主要功能点

光伏电站的效能与经济效益受气象条件、地理位置、设计布局等多种因素影响显著。因此,光伏气象仿真系统应运而生,成为提升光伏项目规划、设计、运营管理水平的重要工具。该系统集成了气象数据分析、发电量分析、投融资分析、损耗估算分析及光伏设计等多项…

重磅惊喜!OpenAI突然上线GPT-4o超长输出模型!「Her」高级语音模式已开放测试

在最近的大模型战争中,OpenAI似乎很难维持霸主地位。虽然没有具体的数据统计,但Claude3.5出现后,只是看网友们的评论,就能感觉到OpenAI订阅用户的流失: Claude3.5比GPT-4o好用,为什么我们不去订阅Claude呢&…

【TS】基础(一)

TS基础学习 TS(TypeScript)TS的特性TS的优缺点优点缺点 TS和JS的区别TS常用类型原始类型数组类型别名 type联合类型 |函数对象接口 interface继承 extendsinterface和type的区别 类型断言枚举enum任意类型any TS(TypeScript) TS是JS类型的超集(在JavaScript的基础上…

为什么说脱离决策的数据分析都是无用功

如果你问我数据分析师最重要的能力是什么,我的回答是数据驱动决策,这是数据分析师最值钱的能力,没有之一。 因为数据的价值在于挖掘,与业务和市场进行关联,找到机会点。抛开这个,数据本身一文不值&#xf…

C语言笔记(第n版):知识清单

注:本文参考自【C reference - cppreference.com】和【C 语言参考 | Microsoft Learn】,颇有点借花献佛的意味…… C 程序是一系列包含声明的文本文件(通常为头文件和源文件)的序列。它们经过转换成为可执行程序,当操作…