准备三台主机并且安装了docker
192.168.31.132
192.168.31.134
192.168.31.144
linux 版redis6.0.8 下载
下载地址:https://download.redis.io/releases/
干啥用:拷贝出redis.conf文件,在此文件里配置主从关系,最好不要使用不同版本的配置文件,防止出现配置文件的参数不兼容问题
安装步骤
在三台主机上分别建立目录/home/docker/redis,并且把redis.conf文件都复制过去,132作为master,134以及144作为salve。
在132修改配置./redis_master.conf文件,134以及144的配置文件分别为./redis_slave1.conf、./redis_slave/redis_slave2.conf
- redis_master.conf文件修改
# 注释这一行,表示Redis可以接受任意ip的连接
# bind 127.0.0.1
# 关闭保护模式
protected-mode no
# 让redis服务后台运行
daemonize no
# 设定主库的密码,用于认证,如果主库开启了requirepass选项这里就必须填相应的密码
masterauth 123456
# 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码. 只是练习配置,就不使用密码认证了)
requirepass 123456
# 配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/data/redis.log"
- redis_slave.conf 文件修改
# 注释这一行,表示Redis可以接受任意ip的连接
# bind 127.0.0.1
# 关闭保护模式
protected-mode no
# 让redis服务后台运行
daemonize no
# 设定密码(可选,如果这里开启了密码要求,slave的配置里就要加这个密码123456)
requirepass 123456
# 设定主库的密码,用于认证,如果主库开启了requirepass选项这里就必须填相应的密码
masterauth 123456
# 设定master的IP和端口号,redis配置文件中的默认端口号是6379
replicaof 198.168.31.132 6379
# 配置日志路径,为了便于排查问题,指定redis的日志文件目录
logfile "/data/redis.log"
- master配置文件修改之后,执行docker 安装命令
docker network create --driver bridge redis-net
docker run -it --name redis-master --network=redis-net -p 6379:6379 -v /home/docker/redis/redis_master.conf:/usr/local/redis/redis.conf -v /home/docker/redis:/data -d redis:6.0.8 redis-server /usr/local/redis/redis.conf
docker run -it --network=redis-net -d -p 6379:6379 -p 16379:16379 -v /home/docker/redis/redis_slave1.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data --name redis-slave1 redis:6.0.8 redis-server /etc/redis/redis.conf
docker run -it --network=redis-net -d -p 6379:6379 -p 16379:16379 -v /home/docker/redis/redis_slave/redis_slave2.conf:/etc/redis/redis.conf -v /home/docker/redis/redis_slave/data:/data --name redis-slave2 redis:6.0.8 redis-server /etc/redis/redis.conf
- 容器启动成功之后,进入容器查看redis信息,
docker ps -a
docker exec -it 容器id /bin/bash
redis-cli
auth 123456
info
- 验证一主二从是否搭建成功,使用info命令查看,出现如下信息
哨兵集群准备
在redis6.0.8里拷贝出sentinel.conf文件,这里在144主机上搭建,目录准备
- 修改redis_sentinelx.conf文件
# 让sentinel服务后台运行
daemonize no
# 修改日志文件的路径
logfile "/data/sentinel.log"
# 修改监控的主redis服务器
# 最后一个2表示,两台机器判定主被动下线后,就进行failover(故障转移)
sentinel monitor mymaster 192.168.31.132 6379 2
# 主数据库密码,需要将配置放在sentinel monitor mymaster 192.168.31.132 6379 2下面
sentinel auth-pass mymaster 123456
- 安装步骤
docker run -it --network=redis-net -d -p 26380:26380 -v /home/docker/redis/redis_sentinel1/sentinel.conf:/etc/redis/sentinel1/sentinel.conf -v /home/docker/redis/redis_sentinel1/data:/data --name redis-sentinel1 redis:6.0.8 redis-sentinel /etc/redis/sentinel1/sentinel.conf
docker run -it --network=redis-net -d -p 26381:26381 -v /home/docker/redis/redis_sentinel2/sentinel.conf:/etc/redis/sentinel2/sentinel.conf -v /home/docker/redis/redis_sentinel2/data:/data --name redis-sentinel2 redis:6.0.8 redis-sentinel /etc/redis/sentinel2/sentinel.conf
docker run -it --network=redis-net -d -p 26382:26382 -v /home/docker/redis/redis_sentinel3/sentinel.conf:/etc/redis/sentinel3/sentinel.conf -v /home/docker/redis/redis_sentinel3/data:/data --name redis-sentinel3 redis:6.0.8 redis-sentinel /etc/redis/sentinel3/sentinel.conf
- 验证
docker exec -it 容器id /bin/bash
redis-sentoinel
标签:--,redis,哨兵,conf,6.0,sentinel,docker,data
From: https://www.cnblogs.com/ngLee/p/17546306.html