当前位置: 代码网 > 服务器>服务器>云虚拟主机 > docker安装Redis高可用实现一主二从三哨兵

docker安装Redis高可用实现一主二从三哨兵

2024年05月19日 云虚拟主机 我要评论
本次教程使用docker swarm安装准备三台机器hostip用途node1192.168.31.130redis-master01,redis哨兵节点01node2192.168.31.131re

本次教程使用docker swarm安装

准备三台机器

hostip用途
node1192.168.31.130redis-master01,redis哨兵节点01
node2192.168.31.131redis-slave01, redis哨兵节点02
node3192.168.31.132redis-slave02 redis哨兵节点02

注意事项:
1:需要保证三台机器在一个网络或一个服务器安全组内(相互能ping通)
2: 为了演示需要将哨兵节点与redis节点安装在同一个机器,实际线上需要哨兵与redis分开部署以达到高可用性。

1:创建redis数据挂载卷

#node1机器上执行
docker volume create --name redis_cluster_data1
#node2机器上执行
docker volume create --name redis_cluster_data2
#node3机器上执行
docker volume create --name redis_cluster_data3

2: 创建redis专用的网络

#--driver overlay  --attachable 表示创建swarm集群网络且不是service的容器也能加入此网络
docker network create --driver overlay \
--attachable --subnet=192.169.0.0/24 redis_cluster_network

3:下载/配置redis配置文件

本文使用redis6.2.6版本,所以下载redis6.2.6版本中的配置文件

点此进入redis官方文件列表

在这里插入图片描述

解压下载的文件,找到redis.conf文件

在这里插入图片描述

修改默认配置文件

  • bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
  • protected-mode no #默认yes,开启保护模式,限制为本地访问
  • daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
  • dir ./ #输入本地redis数据库存放文件夹(可选)
  • appendonly yes #redis持久化(可选)

然后将此配置文件复制到docker数据卷所在位置(如果你不使用swarm就正常挂载文件就行)

4:创建redis集群service

新增node标签

docker node update --label-add redis=cluster node1
docker node update --label-add redis=cluster node2
docker node update --label-add redis=cluster node3

创建service

docker service create --name redis_cluster \
--network redis_cluster_network \
--mount type=volume,src=redis_cluster_data,dst=/data \
--replicas 3 --constraint 'node.labels.redis == cluster' \
redis:6.2.6 --appendonly yes

5:配置主从关系

选择要成为主节点的ip比如:192.168.31.130
进入从节点01,从节点02

docker exec -it redis_cluster1 redis-cli
docker exec -it redis_cluster2 redis-cli

输入以下命令加入主节点

#固定语法 slaveof 主节点ip 主节点端口
slaveof 192.168.1.10 6379

进入主节点查看节点数量是否成功加入

docker exec -it redis_cluster_master redis-cli
info

6:创建redis哨兵数据挂载卷

#node1机器上执行
docker volume create --name redis_sentinel_data1
#node2机器上执行
docker volume create --name redis_sentinel_data2
#node3机器上执行
docker volume create --name redis_sentinel_data3

下载/配置redis哨兵配置文件由于上面已经下载了redis6.2.6所以我们接着使用文件夹的中的sentinel.conf文件

在这里插入图片描述

修改第84行的sentlnel参数,改为redis主节点的ip,端口

在这里插入图片描述

然后将此配置文件复制到docker数据卷所在位置(如果你不使用swarm就正常挂载文件就行)

7:创建redis哨兵集群service

docker service create --name redis_sentinel_cluster \
--network redis_cluster_network \
#挂载数据卷redis_sentinel_data到容器的/etc/redis目录下 \
--mount type=volume,src=redis_sentinel_data,dst=/etc/redis \
# 开放tcp端口且网络不走集群路由网络(如果不加mode=host,则默认每个docker节点的7369端口都会强制跳转到这些service中无论节点是否在此ndoe中) \
--publish published=7369,target=26379,protocol=tcp,mode=host \
# 制作3个副本 并指定符合条件的node节点中生成。\
--replicas 3 --constraint 'node.labels.redis == cluster' \
# 指定redis镜像版本,指定哨兵模式按指定配置文件启动
redis:6.2.6 redis-sentinel /etc/redis/sentinel.conf

查看哨兵节点信息

#进入哨兵节点
docker exec -it sentinel /bin/bash
#输入命令
redis-cli -h 127.0.0.1 -p 26379
#查看sentinel集群信息
info sentinel

到此这篇关于docker安装redis高可用实现一主二从三哨兵的文章就介绍到这了,更多相关docker redis一主二从三哨兵内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • 代理区独立模式的说明

    代理区独立模式的说明

    独立模式设置的目的是为了让代理能全权管理自己的一台服务器。管理员可以在管理区--代理管理中,授权一个直接代理为独立模式的代理。代理登陆代理区后,可以在代理区,独... [阅读全文]
  • Docker删除某个镜像的实现方法

    Docker删除某个镜像的实现方法

    1. 停止使用镜像的容器首先,您需要停止所有正在使用该镜像的容器。您可以使用docker stop命令来停止容器:docker stop 11184993a10... [阅读全文]
  • 关于网通及电信镜像的问答

    关于网通及电信镜像的问答

    1。使用镜像的前提 首先你要检查两台服务器之间的下载速度,需要达到100k/s以上,因为,平台很多内容是需要调用数据库,如果达不到这样的速度,数据库调用会很慢,... [阅读全文]
  • Docker镜像加速的详细教程

    Docker镜像加速的详细教程

    什么是 docker 镜像?docker 镜像(docker image)是一个可执行的软件包,其中包含运行应用程序所需的所有内容,包括代码、运行时、库、环境变... [阅读全文]
  • 常见的错误操作和解决办法

    常见的错误操作和解决办法

    星外虚拟主机管理平台的用户,安装前和安装后,请注意,不要手工修改以下的内容,如果修改了,请参考以下解决的办法:第一:在iis中不要为任何一个网站绑定ip,这样会... [阅读全文]
  • 如何利用Docker部署一个简单的springboot项目

    1、首先利用docker部署一个redis中间件这里注意两个问题:挂载两个redis文件redis的配置文件 redis.conf挂载redis的数据目录1.1、下载redis镜像…

    2024年05月19日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com