手摸手带你搭建Redis集群&哨兵模式(图文并茂、超详细!)

  • 👏大家好,我是polaris_coder,很高兴认识大家!
  • 🔥如果觉得我的文章对你有帮助,请一键三连支持一下!
  • 📝:学习,提升自己总是没错的!

前言

环境:VMware搭建的虚拟机 + centos7 + Xshell + Xftp + Another Redis Desktop Manager

一、搭建redis集群

说明:为了保证redis的高可用,当一个redis坏掉了,还可有其他的redis提供服务,所以需要搭建redis集群,真实环境,每个redis都部署在一台服务器上。

1.1、在linux上安装redis

1.1.1、在linux系统上解压redis安装包。

在这里插入图片描述

1.1.2、 开始解压

在这里插入图片描述
在这里插入图片描述

1.1.3、将解压后的目录重命名为redis

在这里插入图片描述

1.1.4、切换到redis目录,并查看内容。

  • src:redis的源码,一些.c文件(C语言源文件),.h(C语言头文件)。
  • redis.conf:redis的主配置文件。

在这里插入图片描述

1.1.5、编译

由于redis是用c语言写的,而且linux版的安装包,没有进行编译,所以我们需要手动进行编译。

①make

必须进到redis根目录编译,该目录有Makefile文件。

在这里插入图片描述
②提示我们进行编译测试(这是个建议,可以不做)
在这里插入图片描述
③make test
编译测试需要tcl,会提示你安装一个tcl(8.5及以上版本)
在这里插入图片描述
④安装tcl,yum install tcl -y
⑤
⑤cd到src目录 执行ll
在这里插入图片描述

1.1.6、启动redis

在这里插入图片描述
至此,redis安装成功!

2.2 、搭建redis集群(主从集群)

下面将搭建一主两从的redis集群,下面集群架构图。

  • 原理:两个从节点连接主节点,会自动同步主节点的数据,从只能读,不能写。
    在这里插入图片描述

2.2.1、准备工作

下面这一行注释起来,表示可以通过其他ip连接redis。
在这里插入图片描述
连接redis默认不需要密码,设置密码,下面这一行去掉#,requirepass后面跟你自己的密码
在这里插入图片描述
关闭保护模式,yes改成no
在这里插入图片描述
将redis.conf重命名为redis-6379.conf,作为主节点6379的主配置文件。

2.2.2、配置主6379

配置日志文件,redis-6379.log
在这里插入图片描述
配置pid文件,/var/run/redis_6379.pid,该文件存放了redis启动的进程号。
在这里插入图片描述
设置主的密码,打开注释,masterauth跟上你自己redis密码。
在这里插入图片描述
由redis-6379.conf复制出来两份配置文件,redis-6380.conf,redis-6381.conf,作为从6380,从6381的配置文件。
在这里插入图片描述

2.2.3、配置从6380

在Xftp中,用记事本打开redis-6380.conf
在这里插入图片描述
ctrl + h,将6379全部替换为6380,点击全部替换。
在这里插入图片描述
下面这一行注释打开,replicaof 主的ip,主的端口
在这里插入图片描述

2.2.4、配置从6381

和配置从6380一样。

2.3、启动redis集群

注意:要带配置文件启动,否则使用默认的配置,后面的&表示后台启动redis,返回的是redis的进程号。
在这里插入图片描述
查看redis进程,6379,6380,6381,都启动了
在这里插入图片描述
Another Redis DeskTop Manager连接三个redis
在这里插入图片描述
打开对应的命令行
在这里插入图片描述
主6379输入info命令,查看服务器的相关信息。
role:master,角色是master,主人
slave0,slave1 有两个奴隶,两个从,列出了对应的ip,端口。

在这里插入图片描述
主6380输入info命令,查看服务器的相关信息。
role:slave,角色是slave,奴隶。
master_host,主人的ip。
master_port,主人的端口。
在这里插入图片描述
主6381输入info命令,和从6380看到的,都是相同的主人。
在这里插入图片描述

2.4、主从复制测试

主6379,执行set name polaris。
在这里插入图片描述
从6380,执行get name。
在这里插入图片描述
从6381,执行get name。
在这里插入图片描述
说明主节点的数据,会自动同步到从节点。

2.5、从节点写操作测试

从6380执行 set age 12,提示如下。
READONLY You can’t write against a read only replica.
在只读的从节点上,你不能写!
在这里插入图片描述

二、搭建redis哨兵模式

  • 上面的集群模式,如果主节点挂了呢,这时候,不能往redis写数据了!这时候这需要搭建哨兵模式了,哨兵会自动从剩下的两个从节点中,选举主节点。
  • 注:搭建redis哨兵模式不需要安装额外的软件,redis内置了哨兵,redis-sentinel。
  • 哨兵模式没有主从的概念,都是平等的。

2.1、配置哨兵模式(三个哨兵,端口为:26379,26380,26381)

sentinel.conf 重名为sentinel-26379.conf
在这里插入图片描述
端口:26379
在这里插入图片描述
进程文件:后面跟上端口26379
在这里插入图片描述
日志文件:后面跟上端口26379
在这里插入图片描述
配置主的名字、ip、端口、投票制(ip端口改成你自己的),2票制:表示有两票,就被选举为主节点,几票制=哨兵数/2 + 1。
在这里插入图片描述
打开注释,配置主的密码,
在这里插入图片描述
sentinel-26379.conf复制出来sentinel-26380.conf,sentinel-26381.conf
在这里插入图片描述
记事本打开sentinel-26380.conf,sentinel-26381.conf,全局将26379替换为对应的端口。

2.2、启动哨兵

在这里插入图片描述
查看进程
在这里插入图片描述

2.3、选举测试

再开一个窗口,实时追踪6380的日志。
在这里插入图片描述
停掉redis主6379。

刚开始一直在练6379,连不上,后来6381成为主,连上了。
在这里插入图片描述
查看6381的日志,6381已经变成主节点了。
在这里插入图片描述
之所以是从节点,是因为配置文件有replicaof 主的ip,端口,现在6381变成主,那么这行配置应该自动被哨兵给删了,这行配置找不到了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值