redis的集群(高可用)

news2024/11/16 22:01:05

redis集群的三种模式:

主从复制 奇数 三台 一主两从

哨兵模式 3 一主两从

cluster集群 六台


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

缺点:没有办法实现故障自动化恢复,只有主能够写。

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

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

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

集群:把没两台服务器作为主从模式,形成一个大的主从的集群,解决了写操作的负载均衡。较为完善的一个高可用方案

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


一、主从模式

节点和从节点

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

主从复制的流程:

 关闭防火墙和安全机制

配置主服务

vim /etc/redis/6379.conf

跳转到70行,把监听地址改成0.0.0.0

bind 0.0.0.0

跳转到700行,开启AOF的功能

appendonly yes

主服务就配置好了

两个从服务一起配置文件,跳转70行和主服务一样都改成0.0.0.0

跳转到287行添加住的ip地址及端口

replicaof 192.168.124.60 6379

跳转到700行开启AOF功能,两个从服务也配置完毕。

一主两从都重启一下

/etc/init.d/redis_6379 restart

这时主从复制就完成了


二、哨兵模式:

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

进入源码包里面的配置文件

vim sentinel.conf

主从同时配置

跳转到15行,把监听地址注释掉

跳转17行

protected-mode no

关闭保护模式

跳转27行后台运行把no改成yes

daemonize yes

跳转37行,把哨兵监听的日志文件设置一下

logfile "/var/log/sentinel.log"

跳转66行,把数据库的保存文件设置一下

dir "/var/lib/redis/6379"

跳转到85行

sentinel monitor mymaster 192.168.233.7 6379 2

初始化监听,都是监听主,监听主动服务器的状态

2 对应的从服务器的数量以及投票的参与者 参与者要和从服务器的数量一致

2台服务器投票通过,主才能进行故障转移。

sentinel down-after-milliseconds mymaster 30000

判断服务器宕机的时间周期 30秒

每30秒检测一次

sentinel failover-timeout mymaster 180000

判断故障节点的超时的最大时间 180秒

redis-sentinel sentinel.conf &

启动哨兵模式命令

redis-cli -p26379 info Sentinel

查看哨兵模式的状态命令

哨兵模式就创建完成了。


三、cluster集群 

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

集群由多个节点组成,redis数据保存在这些节点。

集群中的节点分为主和从

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

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

redis集群的数据分片

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

创建了集群就有16384个哈希槽

0-16383

三个节点:

主1 0-5460

主2 5461-10922

主3 10923-16383

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

六台服务一起配置

进入配置文件

允许所有ip地址通过,关闭保护模式

开启他的集群模式,超时设置为15秒

打开AOF功能

redis-cli -h 192.168.124.60 -cluster create 192.168.124.60:6379 192.168.124.63:6379 192.168.124.61:6379 192.168.124.64:6379 192.168.124.62:6379 192.168.124.65:6379 --cluster-replicas 1

配置主从的节点命令

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

-cluster create 192.168.124.60:6379 192.168.124.63:6379 192.168.124.61:6379 192.168.124.64:6379 192.168.124.62:6379 192.168.124.65:6379

前面的是主,后面的是从

 --cluster-replicas 1

每个主机只能有一个从

出现这个字段说明已经配置成功了

进入redis库中查询哈希槽怎么分配的

 在查看六台服务的主从分配

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

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

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

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

相关文章

UML类图 详解

总目录 前言 作为一个程序员,我们经常会使用UML来绘制各种图(UML中定义了用例图、类图、时序图、协作图等九种),类图就是其中常用图之一。设计模式中经常会用到的是类图,本文主要是学习UML类图相关资料后的汇总笔记&a…

【原创】分析JDK17加载Sybase驱动出现递归调用的原因并解决其加载问题

前言 最近好久没发文章了,原因是AI太强了,随便问一句答案就有了,节约了很多折腾的时间,也就没法作为原创文章发布了,还有就是很多涉及公司内部的代码,没法公开发布。 这次遇到了一个项目,用的…

Java后端初开-->架构师学习路线!无偿分享!让你少走弯路

由于平台篇幅原因,很多java面试资料内容展示不了,需要的java面试宝典的伙伴们转发文章关注后,扫描下方二维码免费获取:

FFplay:FFmpeg中的多媒体播放器

😎 作者介绍:欢迎来到我的主页👈,我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun(领取大厂面经等资料),欢迎加我的…

【FANUC】发那科机器人ROBOGUIDE安装教程(含安装包)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

基于Debian用户安装星火商店

星火商店下载地址:https://www.spark-app.store/ 本文章我以kali linux来做示范 注:基本debian的linux包括ubuntu,mint linux,kali linux,Pop!_OS,deepin等等 1.点击下载最新版本 2.点击下载 3.点击开始下载(它会自动跳转网页) 4.选择要下载…

告别啃书难,4款pdf翻译成中文神器在手,阅读起来so easy

在这个快节奏的时代,当我们遇到外文的PDF文档时,能不能快速翻译成中文变得非常重要。为了帮大家解决这个问题,我找来了四款专门用于把pdf翻译成中文的工具。这些工具操作起来很简单,翻译的质量也很高,能帮我们大大提高…

MybatisPlus(二)

目录 扩展功能 代码生成 静态工具 逻辑删除 枚举处理器 JSON处理器 配置加密 插件功能 插件功能 分页插件(通用分页实体) 扩展功能 代码生成 静态工具 逻辑删除 逻辑删除就是基于代码逻辑模拟删除效果,但并不会真正删除数据。思路如下: • 在…

转录组数据去批次方法整理(combat,combat-seq,removeBatchEffect)

为什么需要去除批次效应? 批次效应是指样本在不同批次处理及测量的情况下引入与生物学情况不相关的技术误差,比如不同试剂耗材,不同操作者,不同的实验时间等。 正是因为这些非生物学的因素存在就有可能会导致我们的结果偏离真实…

如何模拟真实的负载情况进行测试?

模拟真实的负载情况是进行性能测试的关键步骤,它可以帮助我们了解系统在高负载下的表现,以及可能出现的问题。以下是一些模拟真实负载的方法: 1. 确定目标:首先,我们需要明确测试的目标,例如,我…

探索Python FastAPI的Annotated参数设计:提升代码的灵活性与可读性

在现代软件开发中,代码的可读性和灵活性是至关重要的。Python的FastAPI框架以其高性能和易用性而受到开发者的喜爱。FastAPI提供了一种名为Annotated的参数设计方式,它允许开发者以类型注解的形式增强函数参数的定义,从而提升代码的表达力和灵…

深度学习(RNN+VAE):高质量的音乐作品让音符飞舞起来

深度学习在音乐生成领域有着广泛的应用,其中循环神经网络(RNN)和变分自编码器(VAE)是两种重要的模型。下面是这两种模型在音乐生成中的应用概述: 1. 循环神经网络(RNN)在音乐生成中…

内存管理【C++】

C/C内存分布 栈又叫堆栈,主要存放非静态局部变量、函数参数、函数返回值,栈一般是向下增长的堆用于程序运行时动态内存分配数据段用于存储全局数据和静态数据代码段用于存储可执行代码和制度常量 C内存管理方式 C语言的内存管理方式在C中可以继续使用&…

RabbitMQ 入门篇

接上一篇《RabbitMQ-安装篇(阿里云主机)-CSDN博客》 安装好RabbitMQ后,我们将开始RabbitMQ的使用,根据官网文档RabbitMQ Tutorials | RabbitMQ,我们一步一步的学习。 1. "Hello World!" 这里先说明几个概…

电影票竞价系统:开发难度与代码规范全解析

电影票竞价系统成为了一种新兴的购票方式,它不仅提升了用户的购票体验,也为电影院带来了新的盈利模式。但是,这样一个系统的开发难度如何?代码又该如何规范?本文将一探究竟。 电影票竞价系统的开发难度 技术复杂性 …

【Android Studio】项目目录结构

文章目录 常用视图Android视图project视图 gradlebuild.gradleSDK 路径主题 常用视图 Android视图 project视图 gradle build.gradle SDK 路径 主题

怎么在电脑中创建虚拟的加密磁盘?

在电脑中创建虚拟的加密磁盘可以有效保护电脑数据,避免电脑数据泄露。那么,我们该怎么在电脑中创建虚拟的加密磁盘呢?下面我们就一起来了解一下吧。 BitLocker 在使用BitLocker加密虚拟磁盘前,我们需要使用虚拟磁盘工具创建一个虚…

Navicat最新版安装及免费使用教程(全网最靠谱,最简单~)

一、官网下载Navicat: Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 二、百度网盘下载 链接: https://pan.baidu.com/s/1J-2ukx3NDTqvNoQsxnE1Jw 提取码: 5120 解压Navicat16和17补丁工具,然后双击执行压缩包文件中的&a…

分布式训练:大规模AI模型的实践与挑战

简介: 随着人工智能的发展,深度学习模型变得越来越复杂,数据集也越来越大。为了应对这种规模的增长,分布式训练成为了训练大规模AI模型的关键技术。本文将介绍分布式训练的基本概念、常用框架(如TensorFlow和PyTorch&a…

企业源代码加密软件推荐,10款超好用的源代码加密软件排行榜

在现代软件开发中,源代码是企业的核心资产之一。保护源代码免受未经授权的访问和盗窃至关重要。源代码加密软件可以为企业提供额外的安全层,确保知识产权和商业秘密得到妥善保护。 1. 安秉源码加密软件 通过驱动层透明加密,确保开发人员在使…