属于我的梦,明明还在
个人工具站/博客持续更新中用于技术层面探讨 http://rhx0306.online/

创建网络

docker network create --subnet=172.10.0.0/16 redis

创建文件目录

[root@master app]# mkdir -p /app/redis/server/config
[root@master app]# mkdir -p /app/redis/server/data
[root@master app]# mkdir -p /app/redis/sentinel/config
[root@master app]# mkdir -p /app/redis/sentinel/data
[root@master app]# mkdir -p /app/redis2/server/config
[root@master app]# mkdir -p /app/redis2/server/data
[root@master app]# mkdir -p /app/redis2/sentinel/config
[root@master app]# mkdir -p /app/redis2/sentinel/data
[root@master app]# mkdir -p /app/redis3/server/config
[root@master app]# mkdir -p /app/redis3/server/data
[root@master app]# mkdir -p /app/redis3/sentinel/config
[root@master app]# mkdir -p /app/redis3/sentinel/data

创建配置文件

redis 主配置文件

bind 0.0.0.0
# 配置master密码
requirepass 123456
# 宕机后成为从要连接master的密码
masterauth 123456
# 开启持久化
appendonly yes

redis 备配置文件

replicaof 172.10.0.11 6379
bind 0.0.0.0
# 配置master密码
requirepass 123456
# 宕机后成为从要连接master的密码
masterauth 123456
# 开启持久化
appendonly yes

启动主从节点    INFO replicationv 查看主从信息

docker run -d --name redis-master --network redis --ip 172.10.0.11 -u root -p 6380:6379 -v /app/redis/server/config:/etc/redis/config -v /app/redis/server/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-server /etc/redis/config/redis.conf
docker run -d --name redis-node --network redis --ip 172.10.0.12 -u root -p 6381:6379 -v /app/redis2/server/config:/etc/redis/config -v /app/redis2/server/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-server /etc/redis/config/redis.conf
docker run -d --name redis-node2 --network redis --ip 172.10.0.13 -u root -p 6382:6379 -v /app/redis3/server/config:/etc/redis/config -v /app/redis3/server/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-server /etc/redis/config/redis.conf

 搭建3个哨兵

哨兵配置文件  ../sentinel/config/sentinel.conf

port 26379
sentinel monitor redis-master 172.10.0.11 6379 2
sentinel auth-pass redis-master 123456
sentinel down-after-milliseconds redis-master 6000
sentinel failover-timeout redis-master 6000

 

docker run -d --name redis-sentinel-1 --network redis --ip 172.10.0.20 -u root -p 26379:26379 -v /app/redis/sentinel/config:/etc/redis/config -v /app/redis/sentinel/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-sentinel /etc/redis/config/sentinel.conf
docker run -d --name redis-sentinel-2 --network redis --ip 172.10.0.21 -u root -p 26380:26379 -v /app/redis2/sentinel/config:/etc/redis/config -v /app/redis2/sentinel/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-sentinel /etc/redis/config/sentinel.conf
docker run -d --name redis-sentinel-3 --network redis --ip 172.10.0.22 -u root -p 26381:26379 -v /app/redis3/sentinel/config:/etc/redis/config -v /app/redis3/sentinel/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-sentinel /etc/redis/config/sentinel.conf

 验证:

[root@master app]# docker exec -it redis-sentinel-1 /bin/bash
root@e4ee853ee9e7:/data# redis-cli -h 172.10.0.20 -p 26379
172.10.0.20:26379> ping
PONG
172.10.0.20:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=redis-master,status=ok,address=172.10.0.11:6379,slaves=2,sentinels=3
172.10.0.20:26379> exit

 

posted on 2023-10-30 14:36  属于我的梦,明明还在  阅读(2)  评论(0)    收藏  举报