搭建redis的主从集群

该博客介绍了如何在Docker环境下配置Redis的主从复制和哨兵模式,强调了使用`network_mode:host`的网络模式以确保同一网段通信,并详细说明了哨兵模式的配置步骤,包括修改Redis配置(如开启bind和关闭保护模式)、设置哨兵端口以及主从节点的IP和端口。同时,提到了配置Spring Redis Sentinel实现读写分离的关键设置。
摘要由CSDN通过智能技术生成

1搭建哨兵模式
. network_mode: host 表示当前容器直接接入宿主机的网络,也就是说这个容器没有ip地址,他的ip地址就是宿主机的ip地址,你直接访问宿主机的端口就好了,
为什么要这么设置:
1.为了保持和外网是同一个网段:因为说白了从外面的请求访问他就是说白了要靠宿主机的端口映射去访问,我本质是访问宿主机的某一个端口然后映射到局域网的里面某个端口就可以访问里面的机器了。
2.如果不是同一个网段:
现在把读命令或者写命令发给哨兵机器接收请求并不是由哨兵决定发给谁,而是他根据你的命令决定由那台机器接收你的请求,他会把他的IP请求返回给客户端
由客户端操作机器。然后由客户端去操作这台机器去读取,如果这快是一个独立局域网,和外网不是同一个网段,那么对于哨兵来说这台机器的ip地址是相对于局域网的ip地址,那么这个时候把这个ip返回给外面,外面是访问不了redis,这个时候必须要把容器的ip给暴露出来,那他和客户端处于同一个网络之下才行。那么就没有必要做端口映射了。

  1. Redis主从复制集群(哨兵)
version: "3.1"
services:
  master:
    image: redis:5
    container_name: master
    restart: always
    network_mode: host
    volumes:
      - ./redis_master/conf/redis.conf:/etc/redis/redis.conf
      - ./redis_master/data:/data
    command:
      ['redis-server', '/etc/redis/redis.conf']
  slave1:
    image: redis:5
    container_name: slave1
    restart: always
    network_mode: host
    volumes:
      - ./redis_slave1/conf/redis.conf:/etc/redis/redis.conf
      - ./redis_slave1/data:/data
    command:
      ['redis-server', '/etc/redis/redis.conf']
  slave2:
    image: redis:5
    container_name: slave2
    restart: always
    network_mode: host
    volumes:
      - ./redis_slave2/conf/redis.conf:/etc/redis/redis.conf
      - ./redis_slave2/data:/data
    command:
      ['redis-server', '/etc/redis/redis.conf']
  1. 这个还需要注意你配置了host这几个redis的端口都起了冲突,得改一些配置

3.1master的bind得改成0.0.0.0

在这里插入图片描述

3.2 把保护模式关掉
在这里插入图片描述

3.3每个哨兵的端口也得设置一个单独的 端口
在这里插入图片描述

二:配置哨兵的sentinel.conf(搭建主从复制)
在这里插入图片描述
(masterip)主机的IP地址,(masterport)主机的端口

2.1如果主机是有密码的把他得改一下
在这里插入图片描述
2.2搭建哨兵和搭建redis几乎一模一样

这是守护进程,redis默认非守护的,如果是守护的他会阻塞你当前的进程,redis主线程没事干了这个容器就会主动退出,我们自己去安装redis服务就要安装成守护的这样的话就可以后台运行前台敲命令,docker容器的话,就必须要非守护的占着前台不动,容器就不会主动退出
在这里插入图片描述

3.哨兵连接主机的地址
把ip给改了,后面的2是有几个哨兵认为master挂了会注册切换
在这里插入图片描述
4.当after下线他认为多少毫秒进行切换
在这里插入图片描述
5.故障的切换多久会认为切换失败,
在这里插入图片描述
6.如果还这样配置就没有读写分离的效果

在这里插入图片描述
就得这么配置哨兵端口形成读写分离 Spring: redis:
sentinel:
master: mymaster
nodes:
- 192.168.195.188:26379
- 192.168.195.188:26380
- 192.168.195.188:26381

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值