docker+网桥+redis主从+哨兵模式

我是在两台服务器上实验的,一台服务器的ip是192.168.213.144,另一台服务器的ip是192.168.213.145

1. 搭建网桥

关于第一部分搭建网桥可以参考我这篇博客,会稍微详细一点,https://blog.csdn.net/weixin_45753881/article/details/125973566

1.1 新建网桥

给主机192.168.213.144 网桥分配的网段是 172.20.144.0/24
给主机192.168.213.145 网桥分配的网段是 172.20.145.0/24

#在主机144上执行
docker network create --subnet=172.20.144.0/24 --gateway 172.20.144.1 redisbridge
#在主机145上执行
docker network create --subnet=172.20.145.0/24 --gateway 172.20.145.1 redisbridge

1.2 添加路由

#在主机144上执行
route add -net 172.20.144.0/24 gw 172.20.144.1
#在主机145上执行
route add -net 172.20.145.0/24 gw 172.20.145.1

1.3 配置iptables规则

#在主机144上执行
iptables -t nat -I PREROUTING -s 172.20.144.0/24 -d 172.20.145.0/24 -j DNAT --to 172.20.144.1
#在主机145上执行
iptables -t nat -I PREROUTING -s 172.20.145.0/24 -d 172.20.144.0/24 -j DNAT --to 172.20.145.1

2. 配置redis.conf

2.1 下载redis.conf(主机144和主机145都执行)

# 如果没有安装yum,需要先安装yum
yum -y install wget
# 下载redis.conf,下载路径为/root/redis.conf,想下载到其它路径也可以,记得运行创建docker容器命令(步骤3.1和3.2)时也改成自己所下载的地址
wget http://download.redis.io/redis-stable/redis.conf
# 在服务器的/root目录下创建redis.log文件,到其它路径也可以,记得运行创建docker容器命令(步骤3.1和3.2)时也改成自己所设置的地址
touch redis.log
# 给redis.log赋予权限
chmod 777 redis.log

2.2 配置redis.conf

2.2.1 配置redis主的redis.conf(主机144)

(1)注释 # bind 127.0.0.1
(2)关闭保护模式 protected-mode no
(3)(可选)设定密码 requirepass yourpwd
(4)配置日志路径,为了便于排查问题 logfile “/var/log/redis/redis.log”

# bind 127.0.0.1
protected-mode no
requirepass  yourpwd
logfile "/var/log/redis/redis.log"
# 因为是搞哨兵模式,主库有可能会成为从库,这时候就需要真实主库的密码,建议所有从库的密码保持一致
masterauth  主(从)库密码

2.2.2 配置redis从的redis.conf(主机145)

(1)注释 # bind 127.0.0.1
(2)关闭保护模式 protected-mode no
(3)(可选)设定密码 requirepass yourpwd
(4)配置日志路径,为了便于排查问题 logfile “/var/log/redis/redis.log”
(5)配置主库的ip和端口 replicaof 192.xxx.xxx.xxx 6379
192.xxx.xxx.xxx 是主库所在服务器的ip,6379 是主库redis端口
(6)(视情况而定)如果主库配置了密码,那么这里就填写主库密码;如果主库没设定密码,就不用配 masterauth 主库密码

# bind 127.0.0.1
protected-mode no
requirepass  yourpwd
logfile "/var/log/redis/redis.log"
replicaof 192.xxx.xxx.xxx 6379  # 这里记得替换ip
masterauth  主库密码

3. 部署redis主从

3.1 部署redis主节点

# --network redisbridge 是所使用的网桥
# -e TZ=Asia/Shanghai 设置时区
docker run  --network redisbridge --name redis_master --restart=always -e TZ=Asia/Shanghai -v /root/redis.conf:/usr/local/etc/redis/redis.conf -v /root/redis.log:/var/log/redis/redis.log -d -p 6379:6379 redis:7.0.4 redis-server /usr/local/etc/redis/redis.conf

3.2 部署redis从节点

docker run --network redisbridge --name redis_slave --restart=always -e TZ=Asia/Shanghai -v /root/redis.conf:/usr/local/etc/redis/redis.conf -v /root/redis.log:/var/log/redis/redis.log -d -p 6379:6379 redis:7.0.4 redis-server /usr/local/etc/redis/redis.conf

3.3 查看主从

# 进入redis从节点
docker exec -it redis_slave redis-cli
# 如果redis配置了密码,则进行密码验证,验证通过则会打印OK
auth 密码
# info进行查看
info

4. 配置哨兵

4.1 配置sentinel.conf(所有主机上都执行)

# 下载sentinel.conf到/root路径下,想下载到其它路径也可以,记得运行创建docker容器命令(步骤4.2.1和4.2.2)时也改成自己所下载的地址
wget http://download.redis.io/redis-stable/sentinel.conf
# 在服务器的/root目录下创建sentinel.log文件,到其它路径也可以,记得运行创建docker容器命令(步骤4.2.1和4.2.2)时也改成自己所设置的地址
touch sentinel.log
# sentinel.log赋予权限
chmod 777 sentinel.log

修改sentinel.conf以下几项

protected-mode no
# 修改监控的主redis服务器,最后一个1表示,1台机器判定主被动下线后,就进行failover(故障转移)
sentinel monitor mymaster 192.168.213.144 6379 1
# 修改日志文件的路径
logfile "/var/log/redis/sentinel.log"
sentinel auth-pass mymaster redis密码

4.2 创建sentinel容器

4.2.1 在redis主节点所在的主机上执行

docker run --network redisbridge --name sentinel_master --ip 172.20.144.3 -p 26379:26379 --restart=always  -e TZ=Asia/Shanghai -v /root/sentinel.conf:/usr/local/etc/redis/sentinel.conf -v /root/sentinel.log:/var/log/redis/sentinel.log -d redis:7.0.4 redis-sentinel /usr/local/etc/redis/sentinel.conf

4.2.2 在redis从节点所在的主机上执行

docker run --network redisbridge --name sentinel_slave --ip 172.20.145.3 -p 26379:26379 --restart=always  -e TZ=Asia/Shanghai -v /root/sentinel.conf:/usr/local/etc/redis/sentinel.conf -v /root/sentinel.log:/var/log/redis/sentinel.log -d redis:7.0.4 redis-sentinel /usr/local/etc/redis/sentinel.conf

4.3 测试哨兵

(1)停掉redis主节点,等30秒后,进入redis从节点用info查看从节点是否切换成主节点
(2)也可以在服务器上在/root路径下使用cat sentinel.log查看日志(/root/sentinel.log是前面步骤配置的)

docker+网桥+redis主从+哨兵模式相关推荐

  1. redis 主从哨兵模式搭建

    一.REDIS主从模式,搭建三个节点,同一个机器,三个端口. 安装包 wget http://download.redis.io/releases/redis-5.0.7.tar.gz 安装步骤 ht ...

  2. redis 主从 + 哨兵模式集群部署(3台机器)

    前言 本文只讲如何部署,然后会贴出具体配置,以及如何验证是否部署成功(redis 版本采用 4.0.6 ).既不会介绍 redis 如何安装(本人采用源码安装方式),也不会涉及主从复制,哨兵模式具体原 ...

  3. redis主从哨兵模式安装

    分配了三台服务器,部署redis一主二从三哨兵 记录一下 去redis官网下载tar包, 上传至服务器 tar -zxvf redis.6.0.9.tar.gz -C /utxt/soft 进入解压目 ...

  4. Docker搭建Redis主从模式

    文章目录 Docker搭建Redis主从模式 Docker安装Redis 主从模式(简易模式) 特点 工作机制 搭建 redis-master节点 redis-slave-1节点 redis-slav ...

  5. [redis]知识回顾之redis主从+哨兵搭建简要记录

    1.先准备环境 家里的万年老爷机(120G的SSD,300G硬盘 ),手机热点下载,所以只能少利用空间资源,用virtualBox装centos7纯净版 其中要点: 1.virtualbox创建新机要 ...

  6. Docker搭建Redis主从同步详细教程

    文章目录 介绍: redis主从同步概念 redis主从同步原理 redis主从同步流程图 搭建redis主从详细步骤: 拉取redis镜像 创建所需文件夹,用于映射容器相应文件路径 运行容器指定挂载 ...

  7. Redis:哨兵模式(针对某一模块,数据量有限)

    Redis:哨兵模式(针对某一模块,数据量有限) 关键词 主从(读写分离,高新能),没有实现高可用 主从+哨兵:可以实现主从切换,实现高可用 哨兵检测(1s1ping),哨兵确认(接受回复,主观下线: ...

  8. ip地址转换数字函数 iton_redis深度剖析: 03 redis读写哨兵模式

    什么叫系统不可用: 什么是99.99高可用性: 高可用计算规则,全年 系统可用的时间 / 全年 redis不可用是什么? redis主从基于哨兵模式的高可用: 哨兵的主要功能: (1)集群监控,负责监 ...

  9. Redis的哨兵模式搭建

    Redis的哨兵模式搭建 1.Redis的哨兵模式 Redis的哨兵是反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库.哨兵(sentinel) 是一个分布式系统, ...

最新文章

  1. SetAutoResizeMode
  2. ControlAdvice和ExceptionHandler处理异常的原理与设计
  3. 使用pm2启动node文件_使用 PM2 管理nodejs进程
  4. android java 圆角_java – Android:给一个webview圆角?
  5. iOS 两种方法实现左右滑动出现侧边菜单栏 slide view
  6. 专访《突破》作者刘朋: 程序员快速提升领导力的15个模式!
  7. python自制语音识别_今天的语音识别,我们就用Python来做,从基础的知识到实践的运用...
  8. Bootstrap-点击“×”,可以关闭页面
  9. MAC编译freetype
  10. HashTable与ConcurrentHashMap的区别
  11. 打开一个php网页出现2个ip,php根据ip地址查地区
  12. 单容水箱液位pid控制实验报告_过程控制实验-单容水箱液位控制系统
  13. Access入门简单教程
  14. 《小样本学习研究综述》赵凯琳等 Survey on Few-shot Learning,文献阅读笔记
  15. 用c语言软件制作监察病毒,弄了个病毒。用的是C语言,大家看看!
  16. 中石油邮箱pop3服务器,手机客户端访问中油邮箱设置
  17. 计算机上怎么带源地址ping,如何带源地址ping
  18. 世界时间经纬_世界主要城市经纬度及时区列表
  19. sql server使用DAC连接查询系统表
  20. GEE入门【4】| 矢量数据FeatureCollection(行政区划分)

热门文章

  1. 国内期货开户需要什么条件(2022最全面期货开户条件及流程介绍)
  2. 本地测试php邮件,php – 使用mamp在本地测试电子邮件
  3. win10 使用VM-box安装 ubuntu  Raw-mode is unavailable courtesy of Hyper-V
  4. 关于Y7000电量显示0充不进电的解决方案
  5. javaScript开发扫雷游戏
  6. 虹科干货 | 如何使用AR眼镜识别内容并展示3D模型?
  7. c++包含自定义头文件
  8. 腾讯云-Centos7.2-搭建饥Steam荒服务器踩坑
  9. 华为盒子突然显示连接不到服务器,启动云盒子服务器找不到路径
  10. echarts 地图下钻 到市 到区