redis哨兵模式部署

下载安装

我们将redis安装到/usr/local/目录下
cd /usr/local/

wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
make

创建文件夹

mkdir /usr/local/redis/bin
mkdir /usr/local/redis/conf
mkdir /usr/local/redis/data
mkdir /usr/local/redis/logs

命令复制

我们将常用的命令(/usr/local/redis-5.0.5/src目录下)复制到/usr/local/redis/bin中

cp /usr/local/redis-5.0.5/src/redis-server mkdir /usr/local/redis/bin
cp /usr/local/redis-5.0.5/src/redis-cli mkdir /usr/local/redis/bin

准备配置文件

我们搭建一主两从的模式
复制出三份配置文件
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis/conf/redis-6379.conf
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis/conf/redis-6380.conf
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis/conf/redis-6381.conf

修改以下内容
#后台启动的意思
daemonize yes
#端口号
port 6379
#IP绑定,直接绑定0.0.0.0没毛病
bind 0.0.0.0
#这个文件会自动生成(如果同一台服务器上启动,注意要修改为不同的端口)
pidfile /var/run/redis_6379.pid

我这里是在同一台服务器上起三个redis服务,端口分别为6379、6380、6381

启动服务

启动三个redis服务
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6379.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6380.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6381.conf

配置一主二从,6379为master,6380、6381为replication
/usr/local/redis/bin/redis-cli -p 6380 slaveof 192.168.80.130 6379
/usr/local/redis/bin/redis-cli -p 6381 slaveof 192.168.80.130 6379

检查

查看进程 ps -ef | grep redis
在这里插入图片描述
查看主从配置 /usr/local/redis/bin/redis-cli -p 6379 info Replication
在这里插入图片描述

哨兵模式

至此基本的主从复制模式以及搭建完毕
下面在这基础上搭建哨兵模式
我们准备3个哨兵节点,端口分别为26379、26380、26381

准备配置文件

复制三份哨兵配置文件到 /usr/local/redis/conf

cp /usr/local/redis-5.0.5/sentinel.conf /usr/local/redis/conf/redis-26379.conf
cp /usr/local/redis-5.0.5/sentinel.conf /usr/local/redis/conf/redis-26380.conf
cp /usr/local/redis-5.0.5/sentinel.conf /usr/local/redis/conf/redis-26381.conf

修改以下配置
#配置文件:sentinel.conf,在sentinel运行期间是会被动态修改的
#sentinel如果重启时,根据这个配置来恢复其之前所监控的redis集群的状态
#绑定IP
bind 0.0.0.0
#后台运行
daemonize yes
#默认yes,没指定密码或者指定IP的情况下,外网无法访问
protected-mode no
#哨兵的端口,客户端通过这个端口来发现redis
port 26379
#哨兵自己的IP,手动设定也可自动发现,用于与其他哨兵通信
#sentinel announce-ip
#临时文件夹
dir /tmp
#日志
logfile “/usr/local/redis/logs/sentinel-26380.log”
#sentinel监控的master的名字叫做mymaster,初始地址为 192.168.80.130 6379,2代表两个及以上哨兵认定为死亡,才认为是真的死亡
sentinel monitor mymaster 192.168.80.130 6379 2
#发送心跳PING来确认master是否存活
#如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,那么这个sentinel会主观地(单方面地)认为这个master已经不可用了
sentinel down-after-milliseconds mymaster 1000
#如果在该时间(ms)内未能完成failover操作,则认为该failover失败,failover即故障转移
sentinel failover-timeout mymaster 3000
#指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel parallel-syncs mymaster 1

启动哨兵节点

/usr/local/redis/bin/redis-server /usr/local/redis/conf/sentinel-26379.conf --sentinel
/usr/local/redis/bin/redis-server /usr/local/redis/conf/sentinel-26380.conf --sentinel
/usr/local/redis/bin/redis-server /usr/local/redis/conf/sentinel-26381.conf --sentinel

检查

查看redis进程 ps -ef | grep redis
在这里插入图片描述

我们可以通过 redis-cli -p 6379 monitor 查看哨兵的监控状态
在这里插入图片描述

端口开放

如果客户端工具连接不上,确认redis端口是否开放

我这里是centOS7
查看已经开放的端口
firewall-cmd --list-ports

开启端口
firewall-cmd --zone=public --add-port=26379/tcp --permanent

开启后重启防火墙
firewall-cmd --reload

我们需要把上面的端口都开放,应用程序才可以连接上。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值