【保姆级教学】Redis集群搭建(包括一个主节点、两个从节点和三个哨兵集群)
搭建集群
我是在VMware上创建了三台CentOS 7虚拟机,然后每台虚拟机安装一个redis。
安装redis及配置
- 首先下载redis,我这边使用的是6.2.4,这里给大家提供一个绿色百度云链接链接:https://pan.baidu.com/s/1adCvTt75KtKCLJOuhMGe3w?pwd=1958 。
- 然后使用Xftp将其上传到虚拟机,我个人喜欢上传到
/usr/local/src
。 - 首先准备一些前置依赖,因为make时候需要用到C
yum install -y gcc tcl
- 解压缩并进入
tar -xzf redis-6.2.4.tar.gz
cd redis-6.2.4
- 编译安装
make
make install
- 进行一些基本配置,进入
redis.conf
文件,可以使用/
进行搜索
# 将bind注释,否则只有本机才可以访问
# bind 127.0.0.1
# 关闭保护模式
protected-mode no
# 添加密码
requirepass 123456
# 再配置一个密码(以后主从连接有用)
masterauth 123456
- 为了确保能运行起来,可以关闭防火墙,云服务器慎用
systemctl stop firewalld.service
- 然后可以启动redis,确保当前目录下有redis.conf
redis-server redis.conf
- 再开一个终端,从客户端登录并测试
redis-cli -a 123456
ping
如果返回PONG
,则表示安装redis完成。
搭建集群
在完成了三台虚拟机上redis的配置后,启动这三台服务器上的redis,再开三个终端,分别登录三个redis的客户端,假设第一台的ip是192.168.100.1
,第二台为192.168.100.2
,第二台为192.168.100.3
。如果我们以1为主,2、3为从,则配置如下:
在2号虚拟机的redis客户端界面输入
slaveof 192.168.100.1 6379
在3号虚拟机的redis客户端界面输入
slaveof 192.168.100.1 6379
此时,进入1的客户端输入
info replication
有如下结果,则表示集群搭建成功
上图展示了目前有两个连接的从节点,以及两个从节点的信息。
哨兵集群的搭建
此处可以再开三台虚拟机,但是为了方便,我们直接在1号虚拟机上搭建哨兵集群。
- 我是直接在
/usr/local/src
目录下创建了三个文件夹,然后里面放配置文件。
- s1文件夹中有
sentinel.conf
配置文件 - 其内容为:
port 27001
sentinel announce-ip "192.168.100.1"
sentinel monitor mymaster 192.168.100.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
dir "/usr/local/src/s1"
sentinel auth-pass mymaster 123456
此处192.168.100.1
是你的主节点的ip,6379
是端口号,2
是表示如果有大于等于两个哨兵觉得应该把某个节点删掉,那么就删掉该节点。
- s2文件夹和s3文件夹中conf文件内容一致,不过端口分别修改为27002、27003,dir也记得修改。
- 启动哨兵集群
# 第1个
redis-sentinel s1/sentinel.conf
# 第2个
redis-sentinel s2/sentinel.conf
# 第3个
redis-sentinel s3/sentinel.conf
哨兵集群就检测到了和主节点有关的所有虚拟机,如果主节点宕机,哨兵集群还会在从节点中推举一位新的主节点。这样以来就非常智能~