Redis-三主三从高可用集群搭建

正式搭建之前,注意事项(坑)提前放到最开始,也可以出问题回来看,

(1)第二步中最好将配置文件中的logfile自定义一个目录,以便于在第五步中启动出错的时候迅速定位错误。

(2)第五步如果启动不起来,如果是我上一篇博客中的错误,可以将IP改成环回地址。

(3)第四步如果redis版本是3以上,需要升级ruby版本为2以上,否则会在第六步中报错。

如何升级网上有很多,但是有坑。

pool.sks-keyservers.net 已经被弃用,所以在获取密钥的时候,你需要使用:

 gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

升级完成,再去下载redis 4.0.0,


redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,由于节点数较多,这里采用在一台机器上创建6个redis实例,并将这6个redis实例配置成集群模式,所以这里搭建的是伪集群模式,当然真正的分布式集群的配置方法几乎一样。

第一步:在/usr/local下创建文件夹redis-cluster,然后在其下面分别创建6个文件夾如下
(1)mkdir -p /usr/local/redis-cluster
(2)mkdir 8001、mkdir 8002、 mkdir 8003、 mkdir 8004、 mkdir 8005、 mkdir 8006

第二步:把之前的redis.con配置文件copy到8001下,修改如下內容:
(1)daemonize yes
(2)port 8001 (分别对每个机器的端口号进行设置)
(3)bind 192.168.0.60(必须要绑定当前机器的ip,这里方便redis集群定位机器,不绑定可能会出现循环查找集群节点机器的情况)
(4)dir /usr/local/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据。
(5) rluster-enabled yes(启动集群模式)
(6) cluster-config-file nodes-8001.conf (这里800x最好和port对应上)
(7)cluster-node-timeout 5000
(8) appendonly yes

第三步:把修改后的配置文件,分别 copy到各个文夹下,注意每个文件要修改第2、4、6项里的端口号,可以用批量替换:
:%s/源字符串/目的字符串/g
第四步:由于 redis集群需要使用 ruby命令,所以我们需要安装 ruby
yum install ruby
yum install rubygems
gem install redis --version 3.0.0

第五步:分别启动6个redis实例,然后检查是否启动成功
(1)/usr/local/redis/bin/redis-server /usr/local/redis-cluster/800*/redis.conf
(六个依次执行 星号替换成具体的1,2,3,4,5,6)
(2)ps -ef | grep redis 查看是否启动成功
第六步:在redis3的安装目录下执行 redis-trib.rb命令创建整个redis集群
(1) cd /usr/local/redis3/src
(2)/redis-trib.rb create --replicas 1 192.168.0.60:8001 192.168.0.60:8002 192.168.0.60:8003 192.168.0.60:8004 192.168.0.60:8005 192.168.0.60:8006 

第七步:验证集群
(1)连接任意一个客户端即可:redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口号)如:/usi/lpcal/redis/bin/redis-cli -c -h 192.168.0.60 -p 800*
(2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)


(3)进行数据操作验证


(4)关闭集群则需要逐个进行关闭,使用命令:
/usi/lpcal/redis/bin/redis-cli -c -h 192.168.0.60 -p 800* shutdown
PS:当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境。

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

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

相关文章

Qt_介绍_环境安装_创建新项目_实现helloworld_坐标_1

文章目录 一、Qt是什么二、Qt的发展史三、Qt支持的平台四、Qt版本五、Qt的优点六、Qt的应用场景七、Qt开发环境,需要按照3个部分1.C编译器(gcc,cl.exe....不是Visual Studio)2.Qt SDK3.需要有一个Qt的集成开发环境(IDE&#xff09…

不尝试一下?计算机领域两大赛事来了!!

前言 最近,熊二新来的同事小强比较关注国内的一些赛事信息。这不,近期有两大赛事。这两大赛事,主要还是面向高校学生的。一个是搞网络安全方向的: 第二届京麒CTF挑战赛,另一个是搞数据库方向的: 2024年全国大学生计算机系统能力大…

指令寻址——顺序寻址、跳跃寻址

目录 一、概述 1.定义 2.寻址方式分类 3.形式地址、物理地址 二、指令寻址 1、顺序寻址方式 2、跳跃寻址方式 一、概述 1.定义 寻址方式解决的是指如何在指令中表示一个操作数的地址,如何用这种表示得到操作数、或怎样计算出操作数的地址。 2.寻址方式分类…

题目:方格取数[Easy]

问题描述: 解题思路: 可以使用动态规划,建立dp[i][j][x],表示(1,1)到(i,j)且其积的余数为x的情况下的方案数。时间复杂度为(n^2) * k。 AC代码: …

C语言/数据结构——每日一题(移除链表元素)

一.前言 今天在leetcode刷到了一道关于单链表的题。想着和大家分享一下。废话不多说,让我们开始今天的知识分享吧。 二.正文 1.1题目要求 1.2思路剖析 我们可以创建一个新的单链表,然后通过对原单链表的遍历,将数据不等于val的节点移到新…

RateLimiter 限流 —— 通过切面对单个用户进行限流和黑名单处理

关于登录的安全性管理有较多的手段,包括;设备信息、IP信息、绑定的信息、验证码登各类方式。不过在一些网页版的登录中,如果有人想办法把你的验证码给我,我就可以登录你的账户,查看你的数据。对于一些不法分子通过让你…

【系统架构师】-选择题(十一)

1、紧耦合多机系统一般通过(共享内存)实现多机间的通信。对称多处理器结构(SMP)属于( 紧耦合)系统。 松耦合多机系统又称间接耦合系统,—般是通过通道或通信线路实现计算机间的互连。 2、采用微内核的OS结构…

数据库基础--MySQL多表查询之联表查询

联表查询 定义:多张表联合在一起查询,例如学生信息与学生班级表、部门与员工表 创建两张表,主表与从表 CREATE TABLE TestMain(id INT Not NULL AUTO_INCREMENT,nameVARCHAR(10),introduction VARCHAR(255),PRIMARY KEY(id) ); CREATE TAB…

短视频矩阵系统ai剪辑 矩阵 文案 无人直播四合一功能核心独家源头saas开发

抖去推矩阵AI小程序是一款针对短视频平台的智能创作和运营工具,它具有以下功能特点: 1.批量视频生成:抖去推可以在短时间内生成大量视频,帮助商家快速制作出适合在短视频平台上推广的内容 2.全行业覆盖:适用于多个行业…

Golang数组与切片

文章目录 数组数组介绍数组的定义方式访问与修改数组元素遍历数组元素数组指针 切片切片介绍切片的定义方式访问与修改切片元素添加切片元素切片的拷贝遍历切片元素string的切片 数组 数组介绍 数组介绍 在Go中,数组是一个由固定长度的特定类型元素组成的序列&…

第十五届蓝桥杯省赛大学B组(c++)

很幸运拿了辽宁赛区的省一,进入6月1号的国赛啦... 这篇文章主要对第十五届省赛大学B组(C)进行一次完整的复盘,这次省赛2道填空题6道编程题: A.握手问题 把握手情景看成矩阵: 粉色部分是7个不能互相捂手的情况 由于每个人只能和其他人捂手, 所以黑色情况是不算的 1和2握手2和…

QT防止自研软件被复制的基本操作(二)

参考一 自研软件为了防止被人任意复制传播,需要设置注册使用模式。基本原理:通过计算机的特异性编号,加上自己的编码,使用加密算法算出一个生成码。 一、计算机的特异性编号 硬盘的编号:最后一块硬盘的编号就行&#…

【C语言】/*函数栈帧的创建和销毁*/

目录 前言 一、知识补充 二、分析创建和销毁的过程 三、前言问题回答 前言 本篇主要讨论以下问题: 1. 编译器什么时候为局部变量分配的空间 2. 为什么局部变量的值是随机的 3. 函数是怎么传参的,传参的顺序是怎样的 4. 形参和实参是什么关系 5. 函数…

模型 SOP(标准操作程序)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。标准化流程,提质增效,保障合规。 1 SOP的应用 1.1 餐厅日常卫生清洁标准操作程序(SOP) 下面展示一个餐厅如何通过SOP确保清洁工作的标准化&#xff0c…

基于OpenCv的图像傅里叶变换

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

【题解】OR26 最长回文子串(回文串)

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId182&tqId34752&ru/exam/oj class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * param A string字符串 * …

【电子通识】为什么用双绞线?双绞线抗干扰的原理是什么?

使用双绞线最大的理由是抗干扰。不仅可以防止别人干扰,也可以防止自己干扰别人。这与EMC中的EMS和EMI相对应(参考【EMC专题】电磁兼容--基本概念)。 双绞线是由一对带有绝缘层的铜线(绝缘层使两根线中的金属导体不会因为互碰而导致短路)以螺旋的方式缠绕在一起所构成的。通…

【Java】Stream流、方法引用(Java8)

Stream流 中间方法 distinct() 使用HashSet去重 终结方法 toArray() value 表示 流中数据的个数,要跟数组的长度保持一致。 collect() 收集到map中,比较复杂。需要指定 键 和 值 的生成规则。 方法引用 01_引用静态方法 ​ 引用类方法,其实…

jQuery 笔记13 JavaScript的好帮手

相关内容:下载jQuery网址、jQuery的使用、表格排序软件(tablesorter)、行事历软件(FullCalendar)、…… jQuery是一套开放性源代码的JavaScript函数库(Library),jQuery是JavaScript函数库,简化了…

示波器使用学习笔记#1

1.示波器横轴表示的是时间,纵轴是电压 此时纵轴一格刻度是1V。 此时横轴一格是200us。 此时方波的电压值是2500mV,周期为200us * 4.6 920 us,频率为1087Hz。 采样率500M/秒表示:示波器每秒钟采集500w个点 ,当前示波器…