redis哨兵模式的搭建
(这里的docker-compose文件里使用的是host模式 一般使用端口挂载形式按自己的习惯来)
准备了3台服务器,在服务器上安装docker和docker-compose,这些就不多啰嗦了
节点1 192.168.249.2 主
节点2 192.168.249.3 从
节点3 192.168.249.4 从
(安装目录/home/env/redis)
主节点中在redis目录下新建 master 和 sentinel 文件夹
master中的为对应的redis的配置如下图
其中config中的配置文件 redis.conf内容如下
#**redis开启守护进程,需要注释掉,不然容器无法跑起来**
#daemonize yes
dir /data
logfile /logs/redis.log
protected-mode no
#注释掉,可以远程访问
#bind 127.0.0.1
#开启AOF
appendonly yes
requirepass 1qaz@WSXluoan.com.cn
logs 里面的新建文件 touch redis.log (赋予权限 chmod 777 //***/redis.log)
对应的docker-compose.yml文件为
version: '3.1'
services:
###################redis###########################
redis:
image: redis:4.0.11
container_name: redis
restart: always
network_mode: "host"
volumes:
- /etc/localtime:/etc/localtime
- ./conf:/usr/local/etc/redis
- ./logs:/logs
- ./data:/data
command:
redis-server /usr/local/etc/redis/redis.conf
至此主节点的redis master配置完毕下面配置主节点哨兵模式sentinel
对应的conf里的配置文件为(sentinel.conf)
port 26379
dir "/tmp"
## 监控127.0.0.1:6379的redis,最小投票数为3 注意端口需要开启,3个Redis,3个哨兵,一共6个端口都要开
sentinel myid 891e01c44a28f4bcd872bb82c9aeb8a28a0718cc
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.249.2 6379 2
## 设置mymaster密码,不想要的话可以再Redis配置里面删除密码配置,然后这里也删除
sentinel auth-pass mymaster 1qaz@WSXluoan.com.cn
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.249.3 6379
sentinel known-slave mymaster 192.168.249.4 6379
sentinel current-epoch 0
对应的docker-compose文件为
version: '3.1'
services:
sentinel:
image: redis:4.0.11
container_name: redis-sentinel
restart: always
network_mode: "host"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
sysctls:
- net.core.somaxconn=1024
volumes:
- ./conf/sentinel.conf:/usr/local/etc/redis/sentinel.conf
至此主节点的redis哨兵配置完毕下面开始贴上两台从节点的配置
对应的slave中的 conf文件(redis.conf)为
#**redis开启守护进程,需要注释掉,不然容器无法跑起来**
#daemonize yes
dir /data
logfile /logs/redis.log
protected-mode no
#注释掉,可以远程访问
#bind 127.0.0.1
#开启AOF
appendonly yes
slaveof 192.168.249.2 6379
masterauth 1qaz@WSXluoan.com.cn
对应的docker-compose文件为
version: '3.1'
services:
redis:
image: redis:4.0.11
container_name: redis
restart: always
network_mode: "host"
volumes:
- /etc/localtime:/etc/localtime
- ./conf:/usr/local/etc/redis
- ./logs:/logs
- ./data:/data
command:
redis-server /usr/local/etc/redis/redis.conf
logs 里面的新建文件 touch redis.log (赋予权限 chmod 777 //***/redis.log)
至此主节点的redis master配置完毕下面配置从节点哨兵模式sentinel
对应的conf 中的(sentinel.conf)配置如下
port 26379
dir "/tmp"
## 监控127.0.0.1:6379的redis,最小投票数为3 注意端口需要开启,3个Redis,3个哨兵,一共6个端口都要开
sentinel myid 891e01c44a28f4bcd872bb82c9aeb8a28a0718cc
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.249.2 6379 2
## 设置mymaster密码,不想要的话可以再Redis配置里面删除密码配置,然后这里也删除
sentinel auth-pass mymaster 1qaz@WSXluoan.com.cn
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.249.3 6379
sentinel known-slave mymaster 192.168.249.4 6379
#sentinel known-slave mymaster 10.92.60.26 6379
sentinel current-epoch 0
对应的docker-compose文件内容如下
version: '3.1'
services:
sentinel:
image: redis:4.0.11
container_name: redis-sentinel
restart: always
network_mode: "host"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
sysctls:
- net.core.somaxconn=1024
volumes:
- ./conf/sentinel.conf:/usr/local/etc/redis/sentinel.conf
另外一台从配置机器同上
至此从节点的redis哨兵配置完毕
依次启动三台机器6个docker-compose文件
查看对应日志检查是否搭建成功
more /home/env/redis/slave/logs/redis.log