docker-compose redis(非关系型数据库)哨兵模式的搭建

该博客介绍了如何在三台服务器上使用Docker和docker-compose搭建Redis哨兵模式。主从节点配置包括Redis实例的配置文件(redis.conf)以及哨兵模式的配置文件(sentinel.conf)。配置涉及端口映射、数据持久化、网络模式设置以及哨兵监控和故障转移。通过启动多个docker-compose文件,分别在每个节点上运行Redis主从实例和哨兵服务,完成集群的部署。
摘要由CSDN通过智能技术生成

redis哨兵模式的搭建

(这里的docker-compose文件里使用的是host模式 一般使用端口挂载形式按自己的习惯来)

准备了3台服务器,在服务器上安装docker和docker-compose,这些就不多啰嗦了

节点1 192.168.249.2 主
节点2 192.168.249.3 从
节点3 192.168.249.4 从

(安装目录/home/env/redis)

主节点中在redis目录下新建 master 和 sentinel 文件夹
在这里插入图片描述
master中的为对应的redis的配置如下图
在这里插入图片描述
其中config中的配置文件 redis.conf内容如下

#**redis开启守护进程,需要注释掉,不然容器无法跑起来**
#daemonize yes
dir /data
logfile /logs/redis.log
protected-mode no
#注释掉,可以远程访问
#bind 127.0.0.1
#开启AOF
appendonly yes

requirepass 1qaz@WSXluoan.com.cn

logs 里面的新建文件 touch redis.log (赋予权限 chmod 777 //***/redis.log)

对应的docker-compose.yml文件为

version: '3.1'
services:
  ###################redis###########################
  redis:
    image: redis:4.0.11
    container_name: redis
    restart: always
    network_mode: "host"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./conf:/usr/local/etc/redis
      - ./logs:/logs
      - ./data:/data
    command:
      redis-server /usr/local/etc/redis/redis.conf

至此主节点的redis master配置完毕下面配置主节点哨兵模式sentinel
在这里插入图片描述

对应的conf里的配置文件为(sentinel.conf)

port 26379
dir "/tmp"
## 监控127.0.0.1:6379的redis,最小投票数为3    注意端口需要开启,3个Redis,3个哨兵,一共6个端口都要开
sentinel myid 891e01c44a28f4bcd872bb82c9aeb8a28a0718cc
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.249.2 6379 2
## 设置mymaster密码,不想要的话可以再Redis配置里面删除密码配置,然后这里也删除
sentinel auth-pass mymaster 1qaz@WSXluoan.com.cn
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.249.3 6379
sentinel known-slave mymaster 192.168.249.4 6379
sentinel current-epoch 0

对应的docker-compose文件为

version: '3.1'
services:
  sentinel:
    image: redis:4.0.11
    container_name: redis-sentinel
    restart: always
    network_mode: "host"
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    sysctls:
      - net.core.somaxconn=1024
    volumes:
      - ./conf/sentinel.conf:/usr/local/etc/redis/sentinel.conf

至此主节点的redis哨兵配置完毕下面开始贴上两台从节点的配置
在这里插入图片描述

对应的slave中的 conf文件(redis.conf)为

#**redis开启守护进程,需要注释掉,不然容器无法跑起来**
#daemonize yes
dir /data
logfile /logs/redis.log
protected-mode no
#注释掉,可以远程访问
#bind 127.0.0.1
#开启AOF
appendonly yes
slaveof 192.168.249.2 6379
masterauth 1qaz@WSXluoan.com.cn

对应的docker-compose文件为

version: '3.1'
services:
  redis:
    image: redis:4.0.11
    container_name: redis
    restart: always
    network_mode: "host"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./conf:/usr/local/etc/redis
      - ./logs:/logs
      - ./data:/data
    command:
      redis-server /usr/local/etc/redis/redis.conf

logs 里面的新建文件 touch redis.log (赋予权限 chmod 777 //***/redis.log)

至此主节点的redis master配置完毕下面配置从节点哨兵模式sentinel
在这里插入图片描述
对应的conf 中的(sentinel.conf)配置如下

port 26379
dir "/tmp"
##  监控127.0.0.1:6379的redis,最小投票数为3    注意端口需要开启,3个Redis,3个哨兵,一共6个端口都要开
sentinel myid 891e01c44a28f4bcd872bb82c9aeb8a28a0718cc
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.249.2 6379 2
## 设置mymaster密码,不想要的话可以再Redis配置里面删除密码配置,然后这里也删除
sentinel auth-pass mymaster 1qaz@WSXluoan.com.cn
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.249.3 6379
sentinel known-slave mymaster 192.168.249.4 6379
#sentinel known-slave mymaster 10.92.60.26 6379
sentinel current-epoch 0

对应的docker-compose文件内容如下

version: '3.1'
services:
  sentinel:
    image: redis:4.0.11
    container_name: redis-sentinel
    restart: always
    network_mode: "host"
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    sysctls:
      - net.core.somaxconn=1024
    volumes:
      - ./conf/sentinel.conf:/usr/local/etc/redis/sentinel.conf

另外一台从配置机器同上
至此从节点的redis哨兵配置完毕

依次启动三台机器6个docker-compose文件

查看对应日志检查是否搭建成功
more /home/env/redis/slave/logs/redis.log

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值