搭建的记录

  1. Redis的容器部署后,redis-server的默认安装目录为 /usr/local/bin。
  2. docker volumes 映射的文件与本地的文件共享,修改本地文件后,需要重启docker容器。
  3. redis集群内部需要网络互通,可以使用host网络,也可以使用容器名称+端口来代替ip+端口等。
  4. 容器启动时,使用redis配置文件启动,使用command,redis-server /usr/local/redis/conf/redis.conf(存储卷映射的地址文件)。
  5. 在redis的配置文件中配置外网可以访问,redis主从,都需要对外提高服务,客户端可以读取所有的主从服务器,客户端的写入,只能写入Master,由Master同步到所有的Slave。
  6. 使用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哨兵集群的更多相关文章

  1. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  2. 单台服务器-利用docker搭建Redis哨兵集群模式

    前言:只有一台华为云服务器,所以打算创建三个容器来模拟三个服务器了. 一:拉取redis镜像 二:拉取redis.conf文件 放在自定义的目录下:wget -c http://download.re ...

  3. docker-compose搭建redis哨兵集群

    头脑风暴 出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式. Redis ...

  4. docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接

    花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...

  5. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  6. Redis哨兵集群搭建-Docker-Compose

    title: Redis哨兵集群搭建(Docker-Compose) date: 2022-09-27 17:00:56 tags: - Redis 代码地址:https://github.com/l ...

  7. redis哨兵集群搭建

    下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...

  8. 超详细,多图文介绍redis集群方式并搭建redis伪集群

    超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...

  9. 一、全新安装搭建redis主从集群

    前言· 这里分为三篇文章来写我是如何重新搭建redis主从集群和哨兵集群的及原本服务器上有单redis如何通过升级脚本来实现redis集群.(redis结构:主-从(备)-从(备)) 至于为什么要搭建 ...

  10. 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!

    转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208  版权声明:本文为博主 ...

随机推荐

  1. 2020年你不可不知的自动化框架,可替代Selenuim的测试框架Top10

    Selenium是一种开源自动测试工具.它可以跨不同的浏览器和平台在Web应用程序上执行功能,回归,负载测试.Slenium是最好的工具之一,但确实有一些缺点. 业界有一些强大的工具可以替代Selen ...

  2. Java反射获取字段的属性值及对比两个对象的属性值null差异赋值,递归算法查找

    package com.example.demo; import java.lang.reflect.Field; /** * 需求描述:同一类的不同对象,如果某个字段的null则从另外的一个对象中赋 ...

  3. 笔记:Sublime Text3配置

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 笔记:Sublime Text3配置 日期:2017-12 ...

  4. Bind DNS服务——带KEY的区域传送与子域授权

    Linux基础服务--Bind DNS服务 Part3 带KEY的区域传送与子域授权 带KEY的区域传送 上文提到了区域传送,但实际上在区域传送的时,传送的区域文件并不会被加密.因此一般的区域传送并不 ...

  5. nginx中多个server块共用upstream会相互影响吗

    背景 nginx中经常有这样的场景,多个server块共用一个域名. 如:upstream有2个以上的域名,nginx配置两个server块,共用一个upstream配置. 那么,如果其中一个域名发生 ...

  6. android系统中log机制

    android系统中log机制 背景 习惯了Linux开发的我,转到安卓以后,对于安卓开发的很多问题没有经验.看到同事解决问题都会看logcat,因此有必要了解一下这些东西. 介绍 Android提供 ...

  7. Markdown 文章 跳转

    背景 在查阅一些文档的时候,一些比较优秀博客在文章中是带有目录的,点击就会跳转到指定的锚点. 在本人的某些文章中,也想尝试这样的效果. 做法 实现这样的效果有2种做法(不同之处在于 超链接的写法不同) ...

  8. 在 VSCode 中编写 Markdown 的进阶指南

    最新版的 Visual Studio Code 对 Markdown 的支持已显著提升,其在预览方面的体验甚至可以与 Markdown Preview Enhanced 插件相比.本文将介绍一些优化方 ...

  9. 全国产!全志T3+Logos FPGA核心板(4核ARM Cortex-A7)规格书

    核心板简介 创龙科技SOM-TLT3F是一款基于全志科技T3四核ARM Cortex-A7处理器 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核全国产工业核心板,ARM C ...

  10. day02模板与配置

    一.WXML模板语法 1.1 数据绑定 绑定内容 跟vue差不多,在页面的js文件定义到data里面 然后通过插值语法用在wxml中即可 绑定属性 直接写上插值语法,没有: 三元运算 生成一个十以内的 ...