redis集群(高可用)

redis集群(高可用)

redis集群的三种模式

主从复制 奇数 3台 1主2从

哨兵模式 3台 1主2从

cluster 集群 6台 生产中:333 9台

主从复制:

和MySQL的主从复制类似,主可以写,写入主的数据通过RDB方式把数据同步到服务器。从不能更新到主。也是哨兵模式的基础。

缺点:故障自动化恢复,只有主能够写。

主从复制:

主节点和从节点

数据的复制是单向的,由主复制到从

主从复制的流程:

部署主从复制:

192.168.60.30 redis 主

192.168.60.31 从1

192.168.60.32 从2

操作:

主:
[root@test3 ~]# vim /etc/redis/6379.conf70 bind 0.0.0.0707 appendonly yes[root@test3 ~]# /etc/init.d/redis_6379 restart         #重启配置文件
从1:70 bind 0.0.0.0287  replicaof 192.168.60.30 6379      #取消注释并更改700 appendonly yes                     #no改为yes[root@test3 ~]# /etc/init.d/redis_6379 restart         #重启配置文件
从2:70 bind 0.0.0.0287  replicaof 192.168.60.30 6379      #取消注释并更改700 appendonly yes                     #no改为yes[root@test3 ~]# /etc/init.d/redis_6379 restart         #重启配置文件

哨兵:

故障自动化恢复,主从复制完成之后,从服务器变成只读模式。

故障切换时,主故障,变成从服务器,主变成从之后,也会进入只读模式。

缺点:从节点一旦故障,读会受到影响。

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

部署哨兵模式:

192.168.60.30 redis 主

192.168.60.31 从1

192.168.60.32 从2

操作:

主从都需要配置:
[root@test3 redis-5.0.7]# vim sentinel.conf17  protected-mode no      #取消注释18 #关闭保护模式27 daemonize yes           #将no改为yes37 logfile "/var/log/sentinel.log66 dir "/var/lib/redis/6379"85 sentinel monitor mymaster 192.168.60.30 6379 2#初始化监听,都是监听主。监听主服务器的状态#2 对应的就是从服务器的数量以及投票的参与者要和从服务器的数量一致。#2台服务器投票通过,主才能进行故障转移。114 sentinel down-after-milliseconds mymaster 30000#判断服务器宕机的时间周期  30秒     每30秒检测一次147 sentinel failover-timeout mymaster 180000#判断故障节点的超时的最大时间    180秒
#先起主
[root@test3 redis-5.0.7]# redis-sentinel sentinel.conf &
[1] 35685
[root@test3 redis-5.0.7]# redis-cli -p 26379 info Sentinel
#再起从
[root@redis1 redis-5.0.7]# redis-sentinel sentinel.conf &
[1] 18757
[root@redis1 redis-5.0.7]# redis-cli -p 26379 info Sentinel

集群:

把每两台服务器作为主从模式,形成一个大的主从的集群

解决了写操作的负载均衡。较为完善的高可用方案

缺点:保证高可用,对数据的完整性要求不高。

redis3.0之后的分布式存储方案

集群由多个节点组成,redis数据保存在这些节点。集群中的节点分为主和从。

主负责读写以及维护集群的信息

从节点进行主节点数据的复制(也可以查)

redis集群的数据分片

在集群概念中,引用的是hash槽的概念

创建了集群就有16384个hash槽

0~16383

3个节点:

主1 0~5460

主2 5461~10922

主3 10923~16383

节点当中,如果主和从全部失败,整个集群都将不可用。

部署哨兵模式:

192.168.60.30 redis 主1

192.168.60.31 主2

192.168.60.70 主3

192.168.60.33 从1

192.168.60.34 从2

192.168.60.35 从3

操作:

vim /etc/redis/6379.conf70 #bind 127.0.0.1 192.168.60.30   #将70行注释,表示默认所有89 protected-mode no#将yes改为no833 cluster-enabled yes#将833行取消注释841 cluster-config-file nodes-6379.conf #将841取消注释847 cluster-node-timeout 15000将847行取消注释700 appendonly yes#将700行的no改为yes/etc/init.d/redis_6379 restart#重启配置文件
redis-cli -h 192.168.60.30 --cluster create 192.168.60.30:6379 192.168.60.31:6379 192.168.60.70:6379 192.168.60.34:6379 192.168.60.33:6379 192.168.60.35:6379 --cluster-replicas 1
#在集群的主连接节点配置节点(192.168.60.30)
[root@test3 ~]# redis-cli -h 192.168.60.30 -p 6379
192.168.60.30:6379> cluster slots           #查看hash槽的分配数量
1) 1) (integer) 02) (integer) 54603) 1) "192.168.60.30"2) (integer) 63793) "98d9ae173e3819c6db5c203631fdecdc48454efa"4) 1) "192.168.60.33"2) (integer) 63793) "fd1e5a933fa758fb85ff86456fef1189c5dff573"
2) 1) (integer) 54612) (integer) 109223) 1) "192.168.60.31"2) (integer) 63793) "2efc007ee1b53f8341106f68826c7ea0857e5639"4) 1) "192.168.60.35"2) (integer) 63793) "eadd988775c3e9412616e2dd6caa06f1a42252bc"
3) 1) (integer) 109232) (integer) 163833) 1) "192.168.60.70"2) (integer) 63793) "612a04150651a4b0d0d99d5a939345f42d133000"4) 1) "192.168.60.34"2) (integer) 63793) "4f5dcd83674f988a7763e020f3e9580a5fd4e831"
192.168.60.30:6379> cluster nodes           #查看主从节点
98d9ae173e3819c6db5c203631fdecdc48454efa 192.168.60.30:6379@16379 myself,master - 0 1722408517000 1 connected 0-5460
fd1e5a933fa758fb85ff86456fef1189c5dff573 192.168.60.33:6379@16379 slave 98d9ae173e3819c6db5c203631fdecdc48454efa 0 1722408515000 5 connected
4f5dcd83674f988a7763e020f3e9580a5fd4e831 192.168.60.34:6379@16379 slave 612a04150651a4b0d0d99d5a939345f42d133000 0 1722408517928 4 connected
2efc007ee1b53f8341106f68826c7ea0857e5639 192.168.60.31:6379@16379 master - 0 1722408516000 2 connected 5461-10922
eadd988775c3e9412616e2dd6caa06f1a42252bc 192.168.60.35:6379@16379 slave 2efc007ee1b53f8341106f68826c7ea0857e5639 0 1722408517000 6 connected
612a04150651a4b0d0d99d5a939345f42d133000 192.168.60.70:6379@16379 master - 0 1722408516921 3 connected 10923-16383

redis-cli -h 192.168.60.30 --cluster create 192.168.60.30:6379 192.168.60.31:6379 192.168.60.70:6379 192.168.60.34:6379 192.168.60.33:6379 192.168.60.35:6379 --cluster-replicas 1

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

--cluster create 192.168.60.30:6379 192.168.60.31:6379 192.168.60.70:6379 192.168.60.34:6379 192.168.60.33:6379 192.168.60.35:6379

前面的是主,后面的是从

--cluster-replicas 1

表示每个主只有一个节点

集群:moved表示报错,只是系统提示客户端到指定为止的hash槽进行读或者写

系统提示啥,那就去哪个节点操作即可 这个节点是改节点的主。

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

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

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

相关文章

ft232 win10驱动

ft232 win10驱动 https://ftdichip.com/drivers/d2xx-drivers/

Qt for MCUs 2.8 LTS已发布

本文翻译自:Qt for MCUs 2.8 LTS released 原文作者:Qt Group高级产品经理Yoann Lopes 我们很高兴地宣布Qt for MCUs 2.8 LTS版本已发布,该版本带来了激动人心的新变化,如GUI的构建模块、构建工具工作流程的改进、对Infineon TRA…

excel如何绘制多列数据的折线图

1.注意表中的数据必须是数据类型的,不能是字符串格式的。如果是用python生成的,需要填充int或者float型的数据。 2.选择数据(多列数据的选择,可以按住ctrl键后选中多列) 2. 选择插入 3.选择 推荐的图表->所有图表…

PostgreSQL——查询扫描介绍

顺序扫描 概述 顺序扫描(Sequential Scan)是PostgreSQL中一种基本的数据检索方式,它通过按顺序读取表中的所有页面来查找满足查询条件的记录。这种方式不依赖于索引,因此在某些情况下可能是唯一的选择,尤其是当表没有…

QT:控件圆角设置、固定窗口大小

实现控件圆角度设置//使用的是setStyleSheet方法 //改变的控件是QTextEdit,如果你想改变其他控件,将QTextEdit进行更换 this->setStyleSheet("QTextEdit{background-color:#FFFFFF;border-top-left-radius:15px;border-top-right-radius:15px;bo…

农合生活平台更新升级啦!了解详情戳这里

7月24日,农合生活平台完成了新一轮的版本更新。新版本上线后,农元NYT购买数量将不做限制,优惠券更易得,购物更划算,农元价值升值将进一步「加速度」。 更新说明 1. 数量:旧版本中农元只能定额定量购买&…

Vmware ubuntu22.04 虚拟机 连接windows主机虚拟串口

1.虚拟机配置 鼠标右键点击这个图标,在弹出的菜单里有“连接”或者的“断开连接”的选项,单击即可完成相应的操作。串口连接后图标下侧会出现一个小绿点,断开时没有小绿点。鼠标移动到这个图标上,会显示“串行端口:正在…

找到/打开pupprteer对应chrome版本

前期提要:导出pdf的时候,会用pupprteer启动一个浏览器实例,再打开指定页面进行打印,页面写成什么样,导出的pdf内容就是什么样,听起来很正常。 但是遇到了调试的时候页面显示很正常,而导出的内容…

PostgreSQL——tsearch全文搜索

背景 全文搜索(文本搜索)提供了一种可以检索出满足某个查询条件的自然语言文档的能力,并且还可以根据文档的相关性对文档进行排序。最常见的搜索是找出所有包含给出的查询词的文档,并且以它们符合查询的程度排序输出。 文本搜索…

Java之Java基础二十(集合[上])

Java 集合框架可以分为两条大的支线: ①、Collection,主要由 List、Set、Queue 组成: List 代表有序、可重复的集合,典型代表就是封装了动态数组的 ArrayList 和封装了链表的 LinkedList;Set 代表无序、不可重复的集…

好多人都找不到这四个提升iPhone音质的技巧

在这个快节奏的时代里,我们每天都在寻找让生活变得更美好的方式。对于iPhone用户而言,无论是享受音乐、观看视频还是接听电话,良好的音频体验无疑是提升日常幸福感的关键之一。 然而,许多人可能不知道他们的设备中隐藏着许多能够…

【WRF数据介绍第一期】静态地理数据介绍及下载

WRF数据介绍第一期:静态地理数据介绍及下载 WRF官网-静态地理数据介绍必选静态数据(Mandatory Static Data)特定应用的静态数据(Static Data for Specific Applications)可选静态数据(Optional Static Data…

逆天!吴恩达+OpenAI合作出了大模型课程!重磅推出《LLM CookBook》中文版

吴恩达老师与OpenAI合作推出的大模型系列教程,从开发者在大型模型时代的必备技能出发,深入浅出地介绍了如何基于大模型API和LangChain架构快速开发出结合大模型强大能力的应用。 这些教程非常适合开发者学习,以便开始基于LLM实际构建应用程序…

一句JS代码,实现随机颜色的生成

今天我们只用 一句JS代码,实现随机颜色的生成,首先看一下效果: 每次刷新浏览器背景颜色都不一样 实现此效果的JS函数 : let randomColor () > ...: 定义一个箭头函数randomColor,用于生成一个随机颜色。 Math.ra…

丰田精益生产模式落伍了?揭秘其背后的真相与未来展望

在竞争激烈的全球汽车市场中,丰田汽车公司凭借其独特的精益生产模式(Lean Production)一直占据着举足轻重的地位。然而,近年来,随着一系列质量丑闻的曝光,如尾气排放测试数据造假等,不禁让人质疑…

我终于搭建完成了我的个人网站!(仅分享,非教程)

先看看我的个人网站~ https://yaoqx.pages.devhttps://yaoqx.pages.dev 来看看我搭建的过程吧! (仅分享,非教程) 网站技术 前端框架:Astro主题:Frosti代码托管:Github网页部署:Cl…

【网络协议】HTTP协议详解

文章目录 一、概念 二、简史 三、特点 四、工作流程 五、使用Wireshark抓TCP、http包 六、头域 6.1、请求信息: 6.2、请求方法 6.3、响应消息 6.4、响应头域 6.5、HTTP常见的请求头 6.6、HTTP常见的响应头 七、解决HTTP无状态的问题 7.1、通过Cookies保存状态信息 7…

【Hot100】LeetCode—64. 最小路径和

目录 题目1- 思路2- 实现⭐ 最小路径和——题解思路 3- ACM 实现 题目 原题连接:64. 最小路径和 1- 思路 不同的路径 ——> 多维 dp ——> 每次只能向下或者向右一步 ——> 动规五部曲 两个方向定义递推公式 2- 实现 ⭐ 最小路径和——题解思路 class S…

谁是金融核心系统市场第一名?中兴通讯旗下金篆GoldenDB

从IDC发布的《中国银行业本地部署分布式事务型数据库市场份额,2023》报告来看,中兴通讯旗下的金篆GoldenDB以24.8%的市场份额在银行业本地部署分布式数据库市场中独占鳌头,排名“第一”。    毕竟关系着人民群众的财产安全,银行…