学习使用docker-compose搭建Redis哨兵集群
搭建的记录
- Redis的容器部署后,redis-server的默认安装目录为 /usr/local/bin。
- docker volumes 映射的文件与本地的文件共享,修改本地文件后,需要重启docker容器。
- redis集群内部需要网络互通,可以使用host网络,也可以使用容器名称+端口来代替ip+端口等。
- 容器启动时,使用redis配置文件启动,使用command,redis-server /usr/local/redis/conf/redis.conf(存储卷映射的地址文件)。
- 在redis的配置文件中配置外网可以访问,redis主从,都需要对外提高服务,客户端可以读取所有的主从服务器,客户端的写入,只能写入Master,由Master同步到所有的Slave。
- 使用redis.conf文件启动redis,由于docker-compose是单机部署多个Redis的实例,在服务器上搭建集群都是分为多个服务器,每个服务器上部署不同的实例,启动redis使用配置文件的方式,可以适用于直接在linux上搭建,改动比较小。
Redis配置文件
protected-mode设置为No,bind 0.0.0.0,外网才能访问,masterauth 密码,redis主从切换时密码认证
bind 0.0.0.0
protected-mode no
port 6380
timeout 30
daemonize no
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename "dump.rdb"
dir "/data"
appendonly yes
appendfsync everysec
requirepass 123456li
masterauth "123456li"
Redis哨兵配置文件
任何一个想成为 Leader 的哨兵,要满足两个条件:第一,拿到半数以上的赞成票;第二,拿到的票数同时还需要大于等于哨兵配置文件中的 quorum 值
sentinel monitor 名称 ip 端口 quorum 值,sentinel auth-pass redis Master的密码
port 26380
dir "/data"
sentinel myid 60535b6a4eaaec3ee4c555c659eb4f2934e4c5dc
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 172.26.0.4 6381 2
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster 123456li
sentinel config-epoch mymaster 8
docker-compose.yml
搭建redis一主二从三哨兵的docker-compose.yml文件
version: '3'
services:
master:
image: redis
container_name: redis-master
ports:
- 6380:6380
volumes:
- /root/redis/masterslave/master/data:/data
- /root/redis/masterslave/master/conf:/usr/local/redis/conf
command:
- /bin/bash
- -c
- |
cd /usr/local/bin
redis-server /usr/local/redis/conf/redis.conf
slave1:
image: redis
container_name: redis-slave-1
ports:
- 6381:6381
volumes:
- /root/redis/masterslave/slave1/data:/data
- /root/redis/masterslave/slave1/conf:/usr/local/redis/conf
command:
- /bin/bash
- -c
- |
cd /usr/local/bin
redis-server /usr/local/redis/conf/redis.conf
slave2:
image: redis
container_name: redis-slave-2
ports:
- 6382:6382
volumes:
- /root/redis/masterslave/slave2/data:/data
- /root/redis/masterslave/slave2/conf:/usr/local/redis/conf
command:
- /bin/bash
- -c
- |
cd /usr/local/bin
redis-server /usr/local/redis/conf/redis.conf
sentinel1:
image: redis
container_name: redis-sentinel-1
ports:
- "26380:26380"
volumes:
- /root/redis/masterslave/master/sentinelconf:/usr/local/redis/sentinelconf
command: redis-sentinel /usr/local/redis/sentinelconf/sentinel.conf
sentinel2:
image: redis
container_name: redis-sentinel-2
ports:
- "26381:26381"
volumes:
- /root/redis/masterslave/slave1/sentinelconf:/usr/local/redis/sentinelconf
command: redis-sentinel /usr/local/redis/sentinelconf/sentinel.conf
sentinel3:
image: redis
container_name: redis-sentinel-3
ports:
- "26382:26382"
volumes:
- /root/redis/masterslave/slave2/sentinelconf:/usr/local/redis/sentinelconf
command: redis-sentinel /usr/local/redis/sentinelconf/sentinel.conf
学习使用docker-compose搭建Redis哨兵集群的更多相关文章
- Docker Compose 搭建 Redis Cluster 集群环境
在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...
- 单台服务器-利用docker搭建Redis哨兵集群模式
前言:只有一台华为云服务器,所以打算创建三个容器来模拟三个服务器了. 一:拉取redis镜像 二:拉取redis.conf文件 放在自定义的目录下:wget -c http://download.re ...
- docker-compose搭建redis哨兵集群
头脑风暴 出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式. Redis ...
- docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接
花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...
- Docker 搭建 Redis Cluster 集群环境
使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...
- Redis哨兵集群搭建-Docker-Compose
title: Redis哨兵集群搭建(Docker-Compose) date: 2022-09-27 17:00:56 tags: - Redis 代码地址:https://github.com/l ...
- redis哨兵集群搭建
下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...
- 超详细,多图文介绍redis集群方式并搭建redis伪集群
超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...
- 一、全新安装搭建redis主从集群
前言· 这里分为三篇文章来写我是如何重新搭建redis主从集群和哨兵集群的及原本服务器上有单redis如何通过升级脚本来实现redis集群.(redis结构:主-从(备)-从(备)) 至于为什么要搭建 ...
- 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!
转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208 版权声明:本文为博主 ...
随机推荐
- 实战 k8s----初识
什么是k8s?k8s是谷歌开源的一套完整的容器管理平台,方便我们直接管理容器应用.谷歌称之为,kubernetes,[kubə'netis] ,(跟我一起读库波尔耐题思,重音在耐的音上),由于字母太多 ...
- @Async异步方法对异常的处理,从内层向外层抛出机制
@Async异步方法对异常的处理,从内层向外层抛出机制 @RequestMapping(value = "/test", method = RequestMethod.GET) p ...
- 关于Lecture2建立一个Git远程仓库的补充
Smiling & Weeping ---- 心之何如,有似万丈迷津, 遥亘千里. 其中并无舟子可渡人, 除了自渡,他人爱莫能助. Git 远程仓库(Github) Git 并不像 SVN 那 ...
- opc da 服务器数据 转 profinet IO项目案例
1 案例说明 1. 在OPC DA服务器上运行OPC DA client软件查看OPC DA服务器的相关参数. 2. 配置VFBOX网关参数,使用网关采集OPC DA服务器数据 ...
- Linux的访问权限详解
题目 解读访问权限 rw-r--r--分别代表什么东西 r:代表可读 w:可写 e:可执行 方便起见进行拆分 rw- 代表文件所属用户的权限 r-- 代表同组用户的权限 r-- 代表其他用户的权限 同 ...
- React Lazy 和 Suspense
在React应用中,有些组件可能不经常用到,比如法律条款的弹窗,我们几乎不看,这些组件也就没有必要首次加载,可以在点击它们的时候再加载,这就需要动态引入组件,需要组件的时候,才引入组件,加载它们,进行 ...
- Spring之拦截器和过滤器
Spring拦截器 拦截器简介 Spring拦截器是一种基于AOP的技术,本质也是使用一种代理技术,它主要作用于接口请求中的控制器,也就是Controller. 因此它可以用于对接口进行权限验证控制. ...
- ASP.NET Core修改CentOS的IP地址
最近做的一个产品中有个需求,就是客户使用的时候可以通过Web网页修改服务器的IP地址(客户是普通使用者,没有Linux使用经验,我们的产品作为一台服务器部署到客户机房,客户通过HTTP方式访问使用). ...
- 国内版Unity 2023编辑器无法切换到DX12模式的解决方法
2024.7.4更新:至6000.0.5f1c1,此问题已修复 在{安装目录}\Editor里(也就是Unity安装的根目录)建立一个名叫D3D12的文件夹. 去{安装目录}\Editor\Data\ ...
- VBA | 统计数组某元素出现的次数,适用于一维、二维数组
很简单的需求,但是中文网络上基本都是循环的方法,经过查找下面的方法很有效.为了方便用户的使用,进行了如下的整改. 1 Sub Statistics_Number_of_occurrences_test ...