docker 环境下 redis的哨兵模式

redis 的安装

使用阿里云安装redis

启动redis

创建配置文件

port 6379

logfile "redis-6381.log"

dir /data

appendonly yes

appendfilename appendonly.aof

# slaveof 127.1.0.1 6379

启动redis镜像同时配合容器卷

# docker run -p 6379:6379  --name redis  -v /home/docker/redis/redis.conf:/etc/redis/redis.conf  -v /home/docker/redis/redis-data:/data  -d  redis redis-server /etc/redis/redis.conf

测试

测试连接。使用redis客户端添加数据,
在这里插入图片描述

查看服务器中的数据
在这里插入图片描述
另外两个也是类似,至此,单机版的创建完成。

主从复制模式

修改从设备配置文件,添加主设备的ip。

port 6379

logfile "redis-6381.log"

dir /data

appendonly yes

appendfilename appendonly.aof

slaveof 192.168.1.10 6379

进入从设备容器,查看从设备的状态
在这里插入图片描述
进入主设备的容器,查看主设备的状态
在这里插入图片描述
对另一个从设备进行同样的操作,最后结果如下图所示。
在这里插入图片描述

测试主从复制模式

在这里插入图片描述
查看从设备中的数据
在这里插入图片描述

哨兵模式

在每个redis的服务器上搭建哨兵容器

哨兵的配置文件

port 26379

dir "/data"

logfile "sentinel-26379.log"

sentinel monitor mymaster 192.168.1.10 6379 2

sentinel down-after-milliseconds mymaster 10000

# sentinel failover-timeout mymaster 60000

# sentinel auth-pass mymaster 12345

搭建

启动哨兵的容器

# docker run -p 26379:26379 -v /home/docker/redis/redis-sentinel.conf:/etc/redis/redis-sentinel.conf -v /home/docker/redis/sentinel-data:/data -d redis redis-sentinel /etc/redis/redis-sentinel.conf

在这里插入图片描述
查看哨兵的状态
这里显示主设备的地址信息。
在这里插入图片描述
这里的sentinels的信息与我实际创建的docker地址不一样,不知道为什么
在这里插入图片描述

断联

关闭主设备(192.168.1.10),看能否正常切换
在这里插入图片描述
查看任一哨兵的信息
在这里插入图片描述
查看(1.11上)redis容器的信息
在这里插入图片描述
查看另一个从设备的变更。
在这里插入图片描述
1.11 作为新的主设备也可以正常添加数据
在这里插入图片描述
,1.7 依然是从设备,所以还是不能创建
在这里插入图片描述

重启之前的主设备

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
自动同步 书
在这里插入图片描述

巨人的肩膀

https://www.jianshu.com/p/ce1d78cd368a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Docker配置Redis哨兵模式时,可以按照以下步骤进行操作: 1. 首先,确保已经安装了DockerDocker Compose。 2. 创建一个新的目录,用于存放Redis配置文件和Docker Compose文件。 3. 在该目录下创建一个名为`docker-compose.yml`的文件,并在其中编写以下内容: ```yaml version: '3' services: redis-master: image: redis container_name: redis-master ports: - "6379:6379" volumes: - ./redis-master.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf redis-slave1: image: redis container_name: redis-slave1 ports: - "6380:6379" volumes: - ./redis-slave1.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf redis-slave2: image: redis container_name: redis-slave2 ports: - "6381:6379" volumes: - ./redis-slave2.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf redis-sentinel1: image: redis container_name: redis-sentinel1 ports: - "26379:26379" volumes: - ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf command: redis-sentinel /usr/local/etc/redis/sentinel.conf --sentinel redis-sentinel2: image: redis container_name: redis-sentinel2 ports: - "26380:26379" volumes: - ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf command: redis-sentinel /usr/local/etc/redis/sentinel.conf --sentinel redis-sentinel3: image: redis container_name: redis-sentinel3 ports: - "26381:26379" volumes: - ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf command: redis-sentinel /usr/local/etc/redis/sentinel.conf --sentinel ``` 4. 在同一目录下创建以下配置文件: - `redis-master.conf`:Redis主节点的配置文件,内容如下: ``` bind 0.0.0.0 port 6379 daemonize yes ``` - `redis-slave1.conf`:Redis从节点1的配置文件,内容如下: ``` bind 0.0.0.0 port 6379 daemonize yes slaveof redis-master 6379 ``` - `redis-slave2.conf`:Redis从节点2的配置文件,内容如下: ``` bind 0.0.0.0 port 6379 daemonize yes slaveof redis-master 6379 ``` - `sentinel1.conf`:Redis哨兵1的配置文件,内容如下: ``` bind 0.0.0.0 port 26379 sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 ``` - `sentinel2.conf`:Redis哨兵2的配置文件,内容如下: ``` bind 0.0.0.0 port 26379 sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 ``` - `sentinel3.conf`:Redis哨兵3的配置文件,内容如下: ``` bind 0.0.0.0 port 26379 sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 ``` 5. 打开终端,进入到该目录,并执行以下命令启动Redis容器: ``` docker-compose up -d ``` 这将启动一个包含Redis主节点、两个从节点和三个哨兵节点的Docker容器。 现在,你已经成功配置了Redis哨兵模式。你可以通过访问`localhost:6379`来访问Redis主节点,`localhost:6380`和`localhost:6381`来访问两个从节点,以及`localhost:26379`、`localhost:26380`和`localhost:26381`来访问三个哨兵节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值