以Docker方式安装Redis集群

以 Redis-6.0.6 为例,先从仓库将镜像拉下来:

docker pull redis:6.0.6

Redis 的配置文件和数据文件不能放在镜像中,这里选择容器中的目录和宿主机上一致,这样更方便管理。以 /data/redis 为 Redis 的主目录,配置文件放在目录 /data/redis/conf,数据文件放在目录 /data/redis/data。

注意,需将容器的网络模式设置为主机(host)模式,而不能是默认的网桥(Bridge)等模式。主机模式下,不有用宿主机和容器间的端口映射(即”-p”参数可省略了)。

这里使用了进程监控脚本工具 process_monitor.sh 来自动拉起 Redis 容器,process_monitor.sh 带两个参数,第一个参数为被监控进程(包含目录)和匹配模式(为其中一个参数),第二个参数为拉起进程命令或脚本。

在启动 Redis 窗口之前,需要创建好各目录和设置好配置文件。建议以公共配置文件 redis.conf 加端口定制配置文件 redis-PORT.conf 相结合方式,可直接基于 redis-6.0.6 源代码包提供的 redis.conf 修改。

  • *Crontab设置:
PMONITOR=/usr/local/bin/process_monitor.sh
DOCKER=/bin/docker
REDIS_HOME=/data/redis
REDIS_SERVER=/usr/local/bin/redis-server
PORT1=2020
PORT2=2021
PORT3=2022
PORT4=2023
PORT5=2024
PORT6=2025

PORT1
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT1" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT1 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT1.conf"

PORT2
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT2" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT2 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT2.conf"

PORT3
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT3" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT3 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT3.conf"

PORT4
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT4" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT4 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT4.conf"

PORT5
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT5" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT5 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT5.conf"

PORT6
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT6" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT6 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT6.conf"

Original: https://www.cnblogs.com/aquester/p/13606199.html
Author: -见
Title: 以Docker方式安装Redis集群

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529088/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 计算机硬件的读写速度差异

    现代计算机系统 存储器 寄存器 CPU时钟周期 高速缓存 主存 固态硬盘 机械硬盘 压榨CPU性能带来的问题 有序性问题 可见性问题 原子性问题 作者:小牛呼噜噜 | https:…

    Linux 2023年6月6日
    0132
  • ThinkPHP5浏览器关闭,继续执行php脚本

    ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. set_time_limit(0); //执行时间为无限制,php默…

    Linux 2023年6月7日
    095
  • 关于树莓派64位操作系统

    用过树莓派的都知道,在烧录操作系统时,官方只提供的32位的系统,这是官方经过测试和验证比较稳定的系统,对于使用4GB或8GB版本大内存树莓派用户来说,通常会将树莓派拿来充当服务器或…

    Linux 2023年5月27日
    0131
  • Redis进阶 事务:Redis事务详解

    Redis事务相关命令 Redis事务执行步骤 Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执…

    Linux 2023年5月28日
    0102
  • 记录一次shell脚本环境全局变量在函数内部生效问题

    背景 计划核对内网IP的使用情况,所以写了个小脚本扫描有哪些IP还在使用。执行脚本过程中发现函数中一直获取不到变量的值,排查后将结论记录下来。 问题现象 全局变量已配置,但在函数中…

    Linux 2023年5月27日
    081
  • MySQL——用户和权限管理

    由用户名和主机名组成 格式:’user_name’@’host’ host必须要用引号括起来 注意:host可以是一个主机名也可以是…

    Linux 2023年6月7日
    0101
  • c++ 使用shell命令

    #include #include #include #include #include //execute shell command //执行&#x…

    Linux 2023年5月28日
    0111
  • Linux基础学习(四)

    自建yum仓库,分别为网络源和本地源 1.本地源 点击查看代码 root@ct7:~# yum install autofs root@ct7:~# systemctl enabl…

    Linux 2023年6月8日
    0134
  • 每天一个 HTTP 状态码 202

    202 Accepted 表示服务器已经接受了这个请求,但是还不确定… 202 Accepted 202 Accepted 表示服务器已经接受了这个请求,但是还不确定这…

    Linux 2023年6月7日
    0115
  • Android系统的三种分屏显示模式

    Google在Android 7.0中引入了一个新特性——多窗口支持,允许用户一次在屏幕上打开两个应用。在手持设备上,两个应用可以在”分屏”模式中左右并排或…

    Linux 2023年6月7日
    0112
  • Redis-Cluster实战–5.使用redis-cli安装

    Redis-Cluster实战–5.使用redis-cli安装 博客分类: redis 缓存 redis-cluster redisCluster指派槽cluster-infom…

    Linux 2023年5月28日
    0101
  • shell脚本执行错误:#!/bin/bash: No such file or directory

    1、问题描述: 执行.sh脚本时控制台报错 : #!/bin/bash: No such file or directory 2、解决办法: cat -A 文件路径 会发现第一行有…

    Linux 2023年5月28日
    0258
  • 版本控制gitlab

    版本控制gitlab 版本控制gitlab 版本控制介绍 常用的版本控制工具: gitlab部署 gitlab网页界面的基本使用 使用命令行的方式进行上传文件 版本控制介绍 版本控…

    Linux 2023年6月6日
    0128
  • jQuery的操作方式以及动画效果

    jQuery的操作标签 文本操作 $("选择符").html() // 读取指定元素的内容,如果$()函数获取了有多个元素,则提取第一个元素 $("选…

    Linux 2023年6月7日
    0114
  • IDEA远程部署项目到Docker

    最近在写东西部署到服务器,结构是springboot工程配合docker部署。但是每次部署都3个步骤: 部署次数一多,我就怀疑人生了。就在找有没有IDEA远程部署Docker的方案…

    Linux 2023年6月7日
    091
  • 【文件格式探究】EP.1 对ePub文件格式的初探

    这是”文件格式探究”专题的第 1 期——初探 “ePub” 文件格式。这个专题将会给各位读者呈现笔者探索各种文件格式的过程,具体则是…

    Linux 2023年6月13日
    0185
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球