学习使用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 版权声明:本文为博主 ...
随机推荐
- 使用Vagrant创建CentOS虚拟机
使用Vagrant创建CentOS虚拟机 Vagrant是一款由HashiCorp公司提供的,用于快速构建虚拟机环境的软件.本节我们将使用Vagrant结合Oracle VM VirtualBox快速 ...
- 工具类——EventManager
EventManager using UnityEngine; using System.Collections; using System.Collections.Generic; using Un ...
- spring多数据源配置笔记
本文阐述使用多数据源的额场景,以及如何使用springboot的配置多数据源. 关于后者,主要是直接引用其它博文:https://blog.csdn.net/u012060033/article/de ...
- Pycharm或cmd在Terminal中运行tensorboard、pip等python包
这个主要是添加python包的路径到环境变量里 因为装了anaconda,所以我们要找的是对应虚拟环境里的包路径,一般是放在anaconda安装路径下的anaconda3\envs\环境名\Scrip ...
- 高通与At指令:AtCop解析
背景 在某个新基线上移植AT指令,发现有问题,因此收集了这个系列的 文章 作为 这方面的知识补充. 原文作者:laozhuxinlu,本文有删改. 另外,还参考了:https://www.cnblog ...
- 高通lk阶段mipi 代码解析以及新屏幕添加
参考:https://www.cnblogs.com/linhaostudy/p/9237526.html 背景 前段时间做了这块的工作,但总结完以后领导说我的认识还是过于肤浅,因此重新再看了一下. ...
- socket 端口复用 SO_REUSEPORT 与 SO_REUSEADDR
背景 在学习 SO_REUSEADDR 地址复用的时候,看到有人提到了 SO_REUSEPORT .于是也了解了一下. SO_REUSEPORT 概述 SO_REUSEPOR这个socket选项可以让 ...
- 使用explain优化慢查询的业务场景分析
问:你最害怕的事情是什么? 答:搓澡 问:为什么? 答:因为有些人一旦错过,就不在了 Explain 这个词在不同的上下文中有不同的含义.在数据库查询优化的上下文中,"EXPLAIN&quo ...
- Polar靶场web刷题记录
Polar靶场 web刷题记录 简单部分 swp 考点:敏感文件.preg_match()函数绕过 根据题目名提示 访问 /.index.php.swp 可以用代码格式化工具美化一下 function ...
- 解决php提示Maximum execution time of 30 seconds exceeded错误
如何解决错误? 基本上,有3种方法可以处理此错误: 修改php配置文件php.ini文件 使用 ini_set() 函数 使用set_time_limit()函数 1)修改php配置文件php.ini ...