目录
一.哨兵模式部署
1.设置Redis哨兵模式配置文件的属组以及属主(所有节点操作)
2.修改Redis哨兵模式的配置文件(所有节点操作)
3.准备server文件启动,先启主再启从(所有节点操作)
4.验证
二.集群部署
1.新建集群文件目录
2.准备可执行文件到每个文件夹
3.开启群集功能
4. 启动redis节点
5.查看是否启动成功
6.启动集群
7.测试集群
一.哨兵模式部署
实验环境
master 192.168.181.128
slave1 192.168.181.129
slave2 192.168.181.130
注意:哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式
1.设置Redis哨兵模式配置文件的属组以及属主(所有节点操作)
cp /data/redis-6.2.6/sentinel.conf /apps/redis/etc/
chown redis.redis /apps/redis/etc/sentinel.conf
2.修改Redis哨兵模式的配置文件(所有节点操作)
vim /apps/redis/etc/sentinel.conf
protected-mode no 关闭保护模式
port 26379 Redis哨兵默认的监听端口
daemonize yes 不用修改如果是systemd 启动模式, 修改后启动不了
pidfile /apps/redis/run/redis-sentinel.pid 指定PID文件
logfile "/apps/redis/log/sentinel.log" 指定日志存放路径
dir /tmp 指定数据库存放路径
sentinel monitor mymaster 192.168.181.128 6379 2 修改指定该哨兵节点监控
sentinel auth-pass mymaster 123456 指定Master节点的密码,仅在Master节点设置了requirepass 123456
sentinel down-after-milliseconds mymaster 3000 判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000 同一个sentinel对同一个master两次failover之间的间隔时间(180秒)
###将修改好的redis的配置文件复制到另外两个从服务器
scp -r /apps/redis/etc/sentinel.conf 192.168.181.129:/apps/redis/etc/
scp -r /apps/redis/etc/sentinel.conf 192.168.181.130:/apps/redis/etc/
3.准备server文件启动,先启主再启从(所有节点操作)
[root@localhost etc]#cat >> /lib/systemd/system/redis-sentinel.service <<eof
[Unit]
Description=Redis Sentinel
After=network.target
[Service]
ExecStart=/apps/redis/bin/redis-sentinel /apps/redis/etc/sentinel.conf --supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
eof
[root@localhost etc]# systemctl daemon-reload
[root@localhost etc]# systemctl start redis-sentinel.service
4.验证
关掉 主服务器验证
在主上观察日志
tail -f /apps/redis/log/sentinel.log
会发现主会变成192.168.181.129,重启原先的主之后,会发现主变成了从
redis-cli -a 123456
127.0.0.1:6379> info replication
二.集群部署
开启多实例 来实现redis
redis的集群一般需要6个节点,3主3从。方便起见,这里所有节点在同一台服务器上模拟: 以端口号进行区分:3个主节点端口号:6001/6002/6003,对应的从节点端口号:6004/6005/6006
1.新建集群文件目录
[root@localhost src]#cd /apps/redis/
[root@localhost redis]#mkdir -p redis-cluster/redis600{1..6}
2.准备可执行文件到每个文件夹
for i in {1..6}
do
cp /data/redis-6.2.6/redis.conf /apps/redis/redis-cluster/redis600$i
cp /data/redis-6.2.6/src/redis-cli /data/redis-6.2.6/src/redis-server /apps/redis/redis-cluster/redis600$i
done
3.开启群集功能
cd /apps/redis/redis-cluster/redis6001/
vim redis.conf
#bind 127.0.0.1 #注释掉bind 项,默认监听所有网卡 bind 0.0.0.0
protected-mode no #修改,关闭保护模式
port 6001 #修改,redis监听端口,
daemonize yes #开启守护进程,以独立进程启动 如果是 systemd 启动不需要修改
cluster-enabled yes #取消注释,开启群集功能
cluster-config-file nodes-6001.conf #取消注释,群集名称文件设置
cluster-node-timeout 15000 #取消注释群集超时时间设置
appendonly yes #修改,开启AOF持久化
其余五台操作与其一致
[root@localhost redis6001]#cd /apps/redis/redis-cluster/redis6001
#先切换目录
#复制配置文件
for i in {2..6}
do
\cp -f ./redis.conf /apps/redis/redis-cluster/redis600${i}
done
sed -i 's/6001/6002/' /apps/redis/redis-cluster/redis6002/redis.conf
sed -i 's/6001/6003/' /apps/redis/redis-cluster/redis6003/redis.conf
sed -i 's/6001/6004/' /apps/redis/redis-cluster/redis6004/redis.conf
sed -i 's/6001/6005/' /apps/redis/redis-cluster/redis6005/redis.conf
sed -i 's/6001/6006/' /apps/redis/redis-cluster/redis6006/redis.conf
4. 启动redis节点
分别进入那六个文件夹,执行命令:redis-server redis.conf ,来启动redis节点
[root@localhost redis6001]#systemctl stop redis
# 先停止之前的服务
[root@localhost redis6001]#ss -natp |grep 6379
[root@localhost redis6001]#cd /apps/redis/redis-cluster/redis6001
# 切换目录
#脚本去启动
for d in {1..6}
do
cd /apps/redis/redis-cluster/redis600$d
redis-server redis.conf
done
5.查看是否启动成功
6.启动集群
redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
7.测试集群
redis-cli -p 6001 -c
#加-c参数,节点之间就可以互相跳转
127.0.0.1:6001> cluster slots #查看节点的哈希槽编号范围