1. 程式人生 > >docker redis4.0 集群(cluster)搭建

docker redis4.0 集群(cluster)搭建

add port only bus sub app ech append dock

一、安裝docker、ruby環境

#安裝所需的軟件包
yum install -y yum-utils   device-mapper-persistent-data   lvm2

#設置穩定的存儲庫
yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo

#安裝docker ce(docker社區版)
yum install docker-ce

#啟動docker
systemctl start docker

#獲取redis鏡像(最新版為4.0.9)
docker pull redis

#在docker庫獲取ruby鏡像
docker pull ruby

二、部署redis集群

#創建集群目錄
mkdir /opt/redis-cluster
cd /opt/redis-cluster

#創建模板文件redis-cluster.tmpl,內容如下
port ${PORT}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 10000
cluster-announce-ip 123.*.*.*
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

#生成conf和data目標,並生成配置信息
for port in `seq 7000 7005`; do mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf && mkdir -p ./${port}/data; done #創建6個redis容器 for port in `seq 7000 7005`; do docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /opt/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /opt/redis-cluster/${port}/data:/data --restart always --name redis-${port} --net bridge  -m 100M --memory-swap=100M --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; done #通過啟動ruby來實現集群 echo yes | docker run -i --rm --net bridge ruby sh -c \ gem install redis && wget http://download.redis.io/redis-stable/src/redis-trib.rb \ && ruby redis-trib.rb create --replicas 1 "$(for port in `seq 7000 7005`; do \ echo -n "$(docker inspect --format ‘{{ (index .NetworkSettings.Networks "bridge").IPAddress }}‘ "redis-${port}")":${port} ; done)"

docker redis4.0 集群(cluster)搭建