使用Docker配置redis sentinel哨兵的方法步骤

 更新时间:2022年07月11日 11:09:33   作者:卷积蛋挞  
本文主要介绍了Docker配置redis sentinel哨兵的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文演示一主二从。

先说一下遇到的问题。我看网上说想配置哨兵,必须让启动redis的docker网络模式为host,否则无法访问到从还是什么的。我指定--network host后无法外网访问,redis desktop manager连不上redis了,后来发现我这个新克隆的机器没关防火墙,关上就好了。

1.配置主从

docker pull一下redis

master

mkdir -p /mydata/redis/6379/conf
mkdir -p /mydata/redis/6379/data
touch /mydata/redis/6379/conf/redis.conf
echo "appendonly yes"  >> /mydata/redis/6379/conf/redis.conf
docker run --network host --name redis6379 -v /mydata/redis/6379/data:/data -v /mydata/redis/6379/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --port 6379

slave

#slave1
mkdir -p /mydata/redis/6380/conf
mkdir -p /mydata/redis/6380/data
touch /mydata/redis/6380/conf/redis.conf
echo "appendonly yes"  >> /mydata/redis/6380/conf/redis.conf
docker run --network host --name redis6380 -v /mydata/redis/6380/data:/data -v /mydata/redis/6380/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --port 6380 --slaveof 192.168.243.4 6379

#slave2
mkdir -p /mydata/redis/6381/conf
mkdir -p /mydata/redis/6381/data
touch /mydata/redis/6381/conf/redis.conf
echo "appendonly yes"  >> /mydata/redis/6381/conf/redis.conf
docker run --network host --name redis6381 -v /mydata/redis/6381/data:/data -v /mydata/redis/6381/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --port 6381 --slaveof 192.168.243.4 6379

查看配置:

#主
docker exec -it redis6379 redis-cli
>info replication
#从
docker exec -it redis6380 redis-cli -p 6380
>info replication

在这里插入图片描述

2. 配置哨兵

master

mkdir /mydata/redis/6379/sentinel
mkdir /mydata/redis/6379/sentinel/log
vi /mydata/redis/6379/sentinel/sentinel.conf
#输入
port 26379
dir "/var/log/sentinel"
logfile "/var/log/sentinel/26379.log"
sentinel monitor mymaster 192.168.243.4 6379 1 #这里暂时设置成1
                       ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a303b239fec467385d2c8990cb3e629.png#pic_center)
                        #方便看一下主挂掉是什么效果
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
#end
docker run -d --name sentinel26379 -v /mydata/redis/6379/sentinel/sentinel.conf:/conf/sentinel.conf -v /mydata/redis/6379/sentinel/log:/var/log/sentinel --network host redis redis-sentinel /conf/sentinel.conf

先进行测试:

docker exec -it redis6379 redis-cli
> SHUTDOWN
> exit
cat /mydata/redis/6379/sentinel/log/26379.log

在这里插入图片描述

此时redis6381已成为新的master

在这里插入图片描述

再启动docker start redis6379 6379是slave了

测试成功,修改上面配置文件的sentinel monitor mymaster 192.168.243.4 6379 2 数字配置为2,代表至少有2个Sentinel节点认为主节点不可达,那么这个不可达的判定才是客观的。为了防止票数相同,sentinel启动奇数个。

slave

#slave1
mkdir /mydata/redis/6380/sentinel
mkdir /mydata/redis/6380/sentinel/log
vi /mydata/redis/6380/sentinel/sentinel.conf
#输入
port 26380
dir "/var/log/sentinel"
logfile "/var/log/sentinel/26380.log"
sentinel monitor mymaster 192.168.243.4 6380 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
#end
docker run -d --name sentinel26380 -v /mydata/redis/6380/sentinel/sentinel.conf:/conf/sentinel.conf -v /mydata/redis/6380/sentinel/log:/var/log/sentinel --network host redis redis-sentinel /conf/sentinel.conf

#slave2
mkdir /mydata/redis/6381/sentinel
mkdir /mydata/redis/6381/sentinel/log
vi /mydata/redis/6381/sentinel/sentinel.conf
#输入
port 26381
dir "/var/log/sentinel"
logfile "/var/log/sentinel/26381.log"
sentinel monitor mymaster 192.168.243.4 6381 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
#end
docker run -d --name sentinel26381 -v /mydata/redis/6381/sentinel/sentinel.conf:/conf/sentinel.conf -v /mydata/redis/6381/sentinel/log:/var/log/sentinel --network host redis redis-sentinel /conf/sentinel.conf

在这里插入图片描述

3.SpringBoot连接

application.yml

spring:
  redis:
    timeout: 5000
    sentinel:
      master: mymaster
      nodes: 192.168.243.4:26379,192.168.243.4:26380,192.168.243.4:26381

controller

    @Autowired
	private StringRedisTemplate redisTemplate;

	@RequestMapping("/redis")
    public String redis() {
        redisTemplate.opsForValue().set("test", "121323123");
        String test = redisTemplate.opsForValue().get("test");
        return "RESULT: " + test;
    }

访问localhost:8080/redis

在这里插入图片描述

 到此这篇关于使用Docker配置redis sentinel哨兵的方法步骤的文章就介绍到这了,更多相关Docker配置redis sentinel哨兵内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Docker 容器互联方法

    详解Docker 容器互联方法

    这篇文章主要介绍了详解Docker 容器互联方法,Docker容器都是独立的,互相隔离的环境。然而,它们通常只有互相通信时才能发挥作用。
    2017-03-03
  • 使用Docker Compose 实现nginx负载均衡的方法步骤

    使用Docker Compose 实现nginx负载均衡的方法步骤

    这篇文章主要介绍了使用Docker Compose 实现nginx负载均衡的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 一篇文章学会Docker命令小结

    一篇文章学会Docker命令小结

    这篇文章主要介绍了一篇文章学会Docker命令小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • docker安装部署zabbix的全过程

    docker安装部署zabbix的全过程

    zabbix由2部分构成,zabbix server与可选组件zabbix agent,要想搭建一个Zabbix的工作环境,主要有三个方面(界面、服务器和数据库)可以安装在同一台服务器上,也可以不在同一个服务器,本次使用Docker开源的应用容器来快速搭建zabbix,需要的朋友可以参考下
    2024-03-03
  • Windows Server 2016中文版安装docker的详细步骤

    Windows Server 2016中文版安装docker的详细步骤

    因业务需要所以需要安装Docker,但是在途中遇到了一些问题,所以下面这篇文章主要给大家介绍了关于Windows Server 2016中文版安装docker的详细步骤,需要的朋友可以参考下
    2022-07-07
  • docker实现搭建emqx服务

    docker实现搭建emqx服务

    这篇文章主要介绍了docker实现搭建emqx服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • docker打包前端镜像的超详细步骤

    docker打包前端镜像的超详细步骤

    要打包前端项目可以使用 Docker 容器技术,下面这篇文章主要给大家介绍了关于docker打包前端镜像的超详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • docker 搭建部署 YAPI 框架的详细过程

    docker 搭建部署 YAPI 框架的详细过程

    Yapi是一个高效、易用、功能强大的接口文档管理工具,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 AP,这篇文章主要介绍了docker 搭建部署 YAPI 框架,需要的朋友可以参考下
    2022-08-08
  • docker安装RabbitMQ及安装延迟插件的详细过程

    docker安装RabbitMQ及安装延迟插件的详细过程

    MQ(message queue)字面意思上来说消息队列,是一种跨进程的通信机制,用于上下游传递消息,本文给大家详细介绍docker安装RabbitMQ及安装延迟插件的过程,感兴趣的朋友一起看看吧
    2022-06-06
  • windows 10安装和使用docker

    windows 10安装和使用docker

    这篇文章介绍了windows 10安装和使用docker的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论