docker-compose.yml

master:
image: redis:4
container_name: redis-cluster_master
command: redis-server --port 6379
restart: always
ports:
- "6379"
net: "host"
slave_1:
image: redis:4
container_name: redis-cluster_slave_1
command: redis-server --port 6380 --slaveof 192.168.80.19 6379
restart: always
ports:
- "6380"
net: "host"
slave_2:
image: redis:4
container_name: redis-cluster_slave_2
command: redis-server --port 6381 --slaveof 192.168.80.19 6379
restart: always
ports:
- "6381"
net: "host"
sentinel_1:
build: sentinel
container_name: redis-cluster_sentinel_1
restart: always
environment:
- SENTINEL_PORT=26379
- SENTINEL_DOWN_AFTER=5000
- SENTINEL_FAILOVER=5000
ports:
- "26379"
net: "host"
sentinel_2:
build: sentinel
container_name: redis-cluster_sentinel_2
restart: always
environment:
- SENTINEL_PORT=26380
- SENTINEL_DOWN_AFTER=5000
- SENTINEL_FAILOVER=5000
ports:
- "26380"
net: "host"
sentinel_3:
build: sentinel
container_name: redis-cluster_sentinel_3
restart: always
environment:
- SENTINEL_PORT=26381
- SENTINEL_DOWN_AFTER=5000
- SENTINEL_FAILOVER=5000
ports:
- "26381"
net: "host"

Dockerfile

FROM redis:4

ADD sentinel.conf /etc/redis/sentinel.conf
RUN chown redis:redis /etc/redis/sentinel.conf
ENV SENTINEL_QUORUM 2
ENV SENTINEL_DOWN_AFTER 30000
ENV SENTINEL_FAILOVER 180000
COPY sentinel-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/sentinel-entrypoint.sh
ENTRYPOINT ["sentinel-entrypoint.sh"]

sentinel.conf

# Example sentinel.conf can be downloaded from http://download.redis.io/redis-stable/sentinel.conf

port $SENTINEL_PORT

dir /tmp

sentinel monitor mymaster 192.168.80.19 6379 $SENTINEL_QUORUM

sentinel down-after-milliseconds mymaster $SENTINEL_DOWN_AFTER

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster $SENTINEL_FAILOVER

sentinel-entrypoint.sh

#!/bin/sh

sed -i "s/\$SENTINEL_QUORUM/$SENTINEL_QUORUM/g" /etc/redis/sentinel.conf
sed -i "s/\$SENTINEL_DOWN_AFTER/$SENTINEL_DOWN_AFTER/g" /etc/redis/sentinel.conf
sed -i "s/\$SENTINEL_FAILOVER/$SENTINEL_FAILOVER/g" /etc/redis/sentinel.conf
sed -i "s/\$SENTINEL_PORT/$SENTINEL_PORT/g" /etc/redis/sentinel.conf exec docker-entrypoint.sh redis-server /etc/redis/sentinel.conf --sentinel

只要在redis-cluster目录下,依次执行以下命令即可

注意:192.168.80.19为本机ip

docker-compose build
docker-compose up -d

附上springboot的配置

application.yml

#Spring配置
spring
redis:
#host: 192.168.80.19
#port: 6379
password:
database: 0
sentinel:
master: mymaster
nodes: 192.168.80.19:26379,192.168.80.19:26380,192.168.80.19:26381

docker下安装redis集群的更多相关文章

  1. windows下安装redis集群

    前几天在自己在本机win10 电脑下部署了redis集群. 主要通过的是网上两个博客: 如何在windows下部署redis集群:https://blog.csdn.net/zsg88/article ...

  2. centos7.0 安装redis集群

    生产环境下redis基本上都是用的集群,毕竟单机版随时都可能挂掉,风险太大.这里我就来搭建一个基本的redis集群,功能够用但是还需要完善,当然如果有钱可以去阿里云买云数据库Redis版的,那个还是很 ...

  3. Windows下搭建Redis集群

    Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...

  4. liunx contos 7.4 安装redis集群

    前前后后安装了几次redis集群,基本上每次安装都会采坑,耗时伤神. 安装redis依赖gcc环境,安装前先检查liunx上面有没有安装GCC 命令:gcc -v 上传redis-4.0.1.tar. ...

  5. linux系统centOS7下搭建redis集群中ruby版本过低问题的解决方法

    问题描述: 在Centos7中,通过yum安装ruby的版本是2.0.0,但是如果有些应用需要高版本的ruby环境,比如2.2,2.3,2.4... 那就有点麻烦了,譬如:我准备使用redis官方给的 ...

  6. Redis集群搭建(转自一菲聪天的“Windows下搭建Redis集群”)

    配置Redis参考:http://blog.csdn.net/zsg88/article/details/73715947 使用Ruby配置集群参考:https://www.cnblogs.com/t ...

  7. Windows下 搭建redis集群

    Windows下搭建redis集群教程 一,redis集群介绍 Redis cluster(redis集群)是在版本3.0后才支持的架构,和其他集群一样,都是为了解决单台服务器不够用的情况,也防止了主 ...

  8. windows环境下搭建Redis集群

    转载请注明出处,原文章地址: https://www.cnblogs.com/tommy-huang/p/6240083.html Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Red ...

  9. Docker快速构建Redis集群(cluster)

    Docker快速构建Redis集群(cluster) 以所有redis实例运行在同一台宿主机上为例子 搭建步骤 redis集群目录清单 . ├── Dockerfile ├── make_master ...

随机推荐

  1. angular 小技术点

    angular 标签 ng-options ng-model ng-checked ng-true-value ng-false-value ng-if ng-src delete $location ...

  2. selenium数据读取模块

    例如 数据保存在txt中 def info(path): web_info={} config = open(path) for line in config: result = [ele.strip ...

  3. cookie session jwt-token

    http是无状态的,即请求之间是相互独立的:即提供用户名/密码验证后,下次还需要再次提供 而cookie就是解决这个问题的 cookies 服务器验证通过后,在响应头中设置set-cookies,浏览 ...

  4. Layui Iframe页面间 方法的相互调用

    就是普通的iframe之间方法的调用,只是注意一下src就像 var childWindow = $(window.parent.document).find("iframe[src='/A ...

  5. haproxy 配置文件详解 之 backend

    配置示例: backend htmpool mode http option redispatch option abortonclose balance static-rr cookie SESSI ...

  6. vue CSS使用/deep/

    比如你使用了别人的组件或者自己开发一个组件,有时候你修改一处就可能影响到别的地方,这个时候要么你不用别人的组件,自己重新封装一个,但很多时候是不太现实的,所以就需要有一个方法或者方式,既不影响到别的地 ...

  7. nuxt中localstorage的替代方案

    采用异步的方式进行存储数据,更高效快速,使用localforage是你最好的选择 具体转载自博客 Heap Stack Blog(pingbook.top) Nuxt storage data in ...

  8. ##ant 打包apk

    ant 打包apk 1. 参考: Android Ant 批量多渠道打包实例 单个渠道类似操作,只不过不用修改build.xml文件 2. 修改ant debug的包签名,使用和release版本相同 ...

  9. nginx配置神器

    原文 https://mp.weixin.qq.com/s/zFEk7XzHj3xPReDXEnQxcQ https://nginxconfig.io/ Nginx作为一个轻量级的HTTP服务器,相比 ...

  10. Django单元测试总结

    title: Django单元测试总结 date: 2019/6/18 17:50:00 body: [article] description: "  在本文中,笔者大致对Django单元 ...