一. 下载:
百度云:
链接:https://pan.baidu.com/s/1sQjpbiFIFhnSpa0_uCP53A
提取码:AA56版本:redis-6.23
注:本文依旧此博文修改而来,那篇更为详细,本文为快速搭建,不做太多说明,想要学习更多访问以下链接
Linux下 Redis集群搭建详解(主从+哨兵)_程序员大佬超的博客-优快云博客_linux redis集群搭建
二. 安装
集群服务器配置如下,本文采用3台服务器搭建集群环境
node1 | 192.168.177.171 |
node2 | 192.168.177.172 |
node3 | 192.168.177.173 |
以下每台操作都一样:可批量同时执行
1. 解压
tar xzf redis-6.2.3.tar.gz
2. 编译
cd redis-6.2.3/
make
编译成功后,根目录下会多出src、conf 等文件夹
3. 安装
cd src/
make install
如报错:/bin/sh: cc: command not found
#安装gcc
yum install gcc
#再次执行make install
4. 配置
(1)新建 bin 和 etc 文件夹
cd /home/redis-6.2.3/
mkdir etc
mkdir bin
(2)将redis.conf
复制到 ect 文件夹下
cp redis.conf /home/redis-6.2.3/etc
(3)bin 文件复制
cd /home/redis-6.2.3/src/
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /home/redis-6.2.3/bin/
5. 启动redis
cd /home/redis-6.2.3/bin/
./redis-server /root/redis-6.2.3/etc/redis.conf
出现redis 标志则启动成功
查看是否启动(默认端口为6369)
netstat -anp | grep 6379
6.关闭服务
redis-cli -p 6379 shutdown
三.主从配置
注:这里开始便是重点
假设主服务器(master节点)为node1,从服务器(salve节点)为node2,node3
1. 修改etc目录下redis.conf文件 (master节点,node1服务器操作)
# 本机IP(内网)
bind:192.168.177.171
# 通讯端口,修为6379默认端口
port:16339
# 是否开启保护模式,默认开启。
# 要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no。
protected-mode:no
# redis进程是否以守护进程的方式运行
daemonize:yes
# 日志存储地址
logfile:/data/redis/log
#密码
requirepass:pwdtest@2022
#master通讯密码
masterauth:pwdtest@2022
2. 修改etc目录下redis.conf文件 (slave节点,node2,node3服务器操作)
注:slave节点是不需要配置masterauth
# 本机IP(内网),这里从机node2,node3ip是啥就写啥
bind:192.168.177.x
# 通讯端口,修为6379默认端口
port:16339
# 是否开启保护模式,默认开启。
# 要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no。
protected-mode:no
# redis进程是否以守护进程的方式运行
daemonize:yes
# 日志存储地址
logfile:/data/redis/log/redis.log
#密码
requirepass:pwdtest@2022
3、数据同步(主从节点同时启动)
cd /home/redis-6.2.3/bin/
./redis-server ../etc/redis.conf
4. 数据验证
这里不做了,如果不成功,就看看日志,日志就是logfile配置地址
注:主从配置,只有master节点可以进行修改或新增,slave只能查阅
四. 哨兵模式
1. 配置文件复制(所有节点)
cd /home/redis-6.2.3/
cp sentinel.conf etc/
2. 编辑 sentinel.conf(所有节点)
cd etc/
vi sentinel.conf
内容修改如下
# 修改端口默认为26339。
port:26339
# 关闭保护模式,可以外部访问。
protected-mode:no
# 设置为后台启动。
daemonize:yes
# 日志文件。
logfile: /data/redis/log/sentinel.log
# 指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。
sentinel monitor mymaster 192.168.177.17 16339 2
# 当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel auth-pass mymaster pwdtest@2019
# 这里设置了主机多少秒无响应,则认为挂了。
sentinel down-after-milliseconds mymaster 3000
# 主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间,这里设置为三分钟。
sentinel failover-timeout mymaster 180000
4. 启动哨兵(所有节点)
cd /home/redis-6.2.3/bin/
./redis-sentinel ../etc/sentinel.conf
5. 哨兵验证
这里不做了,自己把主服务关了,看看又没切换就行了,如果没有切换,就把服务全部关掉,修改sentinel.conf 文件中 sentinel monitor mymaster配置
五. 开启访问端口
注:云服务器还需要配置服务商安全组
systemctl start firewalld
firewall-cmd --zone=public --add-port=16339/tcp --permanent
firewall-cmd --zone=public --add-port=26339/tcp --permanent
firewall-cmd --reload
六. 快速启动、关闭脚本
启动脚本
cd /home/redis-6.2.3/bin/
vim start.sh
写入以下内容:
./redis-server ../etc/redis.conf
./redis-sentinel ../etc/sentinel.conf
关闭脚本:
cd /home/redis-6.2.3/bin/
vim stop.sh
写入以下内容
redis-cli -a remit#pwdtest@2022 -c -h 192.168.177.171 -p 26339 shutdown
redis-cli -a remit#pwdtest@2022 -c -h 192.168.177.171 -p 16339 shutdown
注意: 这里remit#pwdtest@2022 为redis密码
192.168.177.171 为当前服务器ip, 不同服务器这里的ip是不一样的
授权:
chmod 775 start.sh
chmod 775 stop.sh