博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

docker 安装redis 6.0.8哨兵集群(一主两从三哨兵)

Posted on 2023-07-11 23:42  海绵谷  阅读(238)  评论(0编辑  收藏  举报

准备三台主机并且安装了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