Linux单服务器部署redis集群,哨兵集群(作废,有问题)

这种配置方式虽然实现了集群,自动选举,但是存在问题:客户端无法获取对应的访问地址

环境:
        1、只有一台Linux服务器
        2、使用docker-compose进行部署(docker-compose的使用这里就不介绍了)

1、docker images

使用自己镜像中的redis

2、docker network ls

 查看当前已有的网段(注意:必须要同网段,要不然会无法访问)
        也可以创建新的网段:docker network create --subnet=172.19.0.0/16 mynetwork

3、redis的docker-compose.yml文件

        这里使用自己的网段可以修改:network_mode: 自己的网段名称

---
version: '3'

services:
  # 主节点的容器
  redis-server-master:
    image: redis
    container_name: redis-server-master
    restart: always
    network_mode: redis_server_default
    # 指定时区,保证容器内时间正确
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      # 映射配置文件和数据目录
      - /opt/sentinel/redis_server/redis6379.conf:/etc/redis/redis.conf
      - /opt/sentinel/redis_server/data6379:/data
    ports:
      - 8379:6379
    command: redis-server /etc/redis/redis.conf
  # 从节点1的容器
  redis-server-slave-1:
    image: redis
    container_name: redis-server-slave-1
    restart: always
    network_mode: redis_server_default
    depends_on:
      - redis-server-master
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - /opt/sentinel/redis_server/redis6380.conf:/etc/redis/redis.conf
      - /opt/sentinel/redis_server/data6380:/data
    ports:
      - 9380:6379
    command: redis-server /etc/redis/redis.conf
  # 从节点2的容器
  redis-server-slave-2:
    image: redis
    container_name: redis-server-slave-2
    restart: always
    network_mode: redis_server_default
    depends_on:
      - redis-server-master
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - /opt/sentinel/redis_server/redis6381.conf:/etc/redis/redis.conf
      - /opt/sentinel/redis_server/data6381:/data
    ports:
      - 9381:6379
    command: redis-server /etc/redis/redis.conf

4、到对应的目录下,创建redis配置文件

        修改对应的配置文件redis6380.conf和redis6381.conf
                slaveof 172.18.0.2 6379 其中的172.18.0.2 为主redis服务的ip地址(redis服务启动后,可通过docker inspect redis-server-master 查看到)
                也可以在yml文件中配置:command后面加--slaveof 172.18.0.2 6379
                protected-mode no 允许远程访问
                requirepass 自己的密码(主从的密码保持一致)
                masterauth 主服务密码(主从的密码保持一致)

        执行命令:docker-compose up -d

        成功后执行命令:docker ps -a        可以看到已经成功启动了

         执行命令查看是否主从同步成功:可以看到有2个从redis服务

        查看从服务器的情况:状态为up
         到这里redis的主从部署完毕。

5、哨兵docker-compose.yml配置文件

---

version: '3'

services:
  redis-sentinel-1:
    image: redis
    container_name: redis-sentinel-1
    restart: always
    volumes:
      - /opt/sentinel/sentinel_server/sentinel26379.conf:/etc/redis/sentinel.conf
    network_mode: redis_server_default
    ports:
      - 26379:26379
    # 指定时区,保证容器内时间正确
    environment:
      TZ: "Asia/Shanghai"
    command: redis-sentinel /etc/redis/sentinel.conf
  redis-sentinel-2:
    image: redis
    container_name: redis-sentinel-2
    restart: always
    volumes:
      - /opt/sentinel/sentinel_server/sentinel26380.conf:/etc/redis/sentinel.conf
    network_mode: redis_server_default
    ports:
      - 26380:26379
    environment:
      TZ: "Asia/Shanghai"
    command: redis-sentinel /etc/redis/sentinel.conf
  redis-sentinel-3:
    image: redis
    container_name: redis-sentinel-3
    restart: always
    volumes:
      - /opt/sentinel/sentinel_server/sentinel26381.conf:/etc/redis/sentinel.conf
    network_mode: redis_server_default
    ports:
      - 26381:26379
    environment:
      TZ: "Asia/Shanghai"
    command: redis-sentinel /etc/redis/sentinel.conf

 6、到对应的目录下,

        配置文件sentinel26379.conf,sentinel26380.conf,sentinel26381.conf
        注意:3个sentinel配置文件的myid不能相同,可以把配置文件中的myid删除,启动会重新生成,3个配置文件可以完成相同,配置如下:

port 26379
dir "/tmp"
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 172.18.0.2 6379 2
sentinel auth-pass mymaster redis服务密码

         执行命令启动:docker-compose up -d

         成功后可以查看配置文件变成:可以看到当前主redis服务为172.18.0.2(redis-server-master)

7、测试是否可以正常选举新的主redis服务

        执行命令: docker ps -a        当前服务都是启动状态
                       当前主redis服务为172.18.0.2(redis-server-master)


        执行命令: docker stop redis-server-master
        查看:docker ps -a

         查看哨兵配置文件,已经变了,主服务变成了172.18.0.3

         再查看之前的从服务器的主从情况:

 到这里哨兵集群就结束了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值