在一台机器上配置 redis 哨兵模式

原创
01/13 20:09
阅读数 312

在同一台机器上配置哨兵模式, 可用于测试开发场景

下载redis

wget https://github.com/redis/redis/archive/5.0.10.tar.gz

解压到三个文件夹, redis-1, redis-2, redis-3

进行 make 编译, 参考这里

在本机上配置哨兵模式, 重点是使用不同的端口

redis服务 redis端口 哨兵端口 主从
redis-1 6379 26379 主节点
redis-2 6380 26380 从节点
redis-3 6381 26381 从节点

配置 ./redis-1/redis.conf, 如下

# bind 127.0.0.1     // 注释掉这一行
protected-mode no    // 关闭保护模式
port 6379            // redis 端口
daemonize yes        // 开启守护进程
pidfile /var/run/redis_6379.pid/      // pid文件
logfile /var/log/redis-1.log          // 日志文件
requirepass 10010    // 设置redis密码

配置 ./redis-2/redis.conf, 如下

# bind 127.0.0.1     // 注释掉这一行
protected-mode no    // 关闭保护模式
port 6380            // redis 端口
daemonize yes        // 开启守护进程
pidfile /var/run/redis_6380.pid/      // pid文件
logfile /var/log/redis-2.log          // 日志文件
requirepass 10010    // 设置redis密码
replicaof 192.168.171.213 6379     // 配置 master 的IP和端口
masterauth 10010       // 配置 master 的密码

配置 ./redis-3/redis.conf, 如下

# bind 127.0.0.1     // 注释掉这一行
protected-mode no    // 关闭保护模式
port 6381            // redis 端口
daemonize yes        // 开启守护进程
pidfile /var/run/redis_6381.pid/      // pid文件
logfile /var/log/redis-3.log          // 日志文件
requirepass 10010    // 设置redis密码
replicaof 192.168.171.213 6379     // 配置 master 的IP和端口
masterauth 10010       // 配置 master 的密码

配置 ./redis-1/sentinel.conf, 如下

protected-mode no    // 关闭保护模式
port 26379      // 哨兵端口
daemonize yes   // 开启守护进程
sentinel monitor mymaster 192.168.171.213 6379 2    // 监控 master ip 端口
sentinel auth-pass mymaster 10010       // master的密码

配置 ./redis-2/sentinel.conf, 如下

protected-mode no    // 关闭保护模式
port 26380      // 哨兵端口
daemonize yes   // 开启守护进程
sentinel monitor mymaster 192.168.171.213 6379 2    // 监控 master ip 端口
sentinel auth-pass mymaster 10010       // master的密码

配置 ./redis-3/sentinel.conf, 如下

protected-mode no    // 关闭保护模式
port 26381      // 哨兵端口
daemonize yes   // 开启守护进程
sentinel monitor mymaster 192.168.171.213 6379 2    // 监控 master ip 端口
sentinel auth-pass mymaster 10010       // master的密码

然后依次启动 主节点 ---> 从节点

# 启动 redis
./redis-1/src/redis-server ./redis-1/redis.conf > /dev/null 2>&1 &
./redis-2/src/redis-server ./redis-2/redis.conf > /dev/null 2>&1 &
./redis-3/src/redis-server ./redis-3/redis.conf > /dev/null 2>&1 &
# 启动哨兵
./redis-1/src/redis-sentinel ./redis-1/sentinel.conf
./redis-2/src/redis-sentinel ./redis-2/sentinel.conf
./redis-3/src/redis-sentinel ./redis-3/sentinel.conf
# 关闭 redis
./redis-1/src/redis-cli -a 10010 shutdown
./redis-2/src/redis-cli -a 10010 shutdown
./redis-3/src/redis-cli -a 10010 shutdown

 最后要检查服务器防火墙有没有开放这些端口 6379, 6380, 6381, 26379, 26380, 26381

# 查看哪些端口是开放的
firewall-cmd --list-ports
# 开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 移除端口
firewall-cmd --zone=public --remove-port=6379/tcp --permanent
# 重启防火墙生效
firewall-cmd --reload

测试故障转移

# 主节点上执行
./redis-1/src/redis-cli -a 10010 -p 6379 
debug sleep 40
info

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部