Centos 使用docker 搭建redis集群

三步走:

第一步:安装依赖包下载

第二步:启动多个容器

第三步:创建集群

 

详细步骤:

1. 安装依赖包:

1. 安装docker:https://blog.csdn.net/u011936655/article/details/81062343
2. 下载reids镜像:docker pull redis
3. 下载ruby镜像:docker pull ruby   

2. 创建多个redis容器并启动

#在/usr/local/src目录下创建redis-cluster文件夹,并创建配置文件redis-cluster.conf
cd /usr/local/src && mkdir redis-cluster && cd ./redis-cluster && touch redis-cluster.conf
redis-cluster.conf的内容如下:

port ${PORT}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
#对外ip
cluster-announce-ip 写你的ip
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

为了重复使用,这里使用脚本创建:

create_cluster.sh:创建对应的文件目录

cd /usr/local/src/redis-cluster && touch create_cluster.sh

create_cluster.sh内容如下:(7000-7005是我要创建的6个redis实例,自行修改)

#!/bin/bash
#在/home/redis-cluster下生成conf和data目标,并生成配置信息
for port in `seq 7000 7005`; do
  mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.conf > ./${port}/conf/redis.conf && mkdir -p ./${port}/data;
done

start_cluster.sh: 启动多个容器

cd /usr/local/src/redis-cluster && touch start_cluster.sh
start_cluster.sh 内容如下:

#!/bin/bash
for port in `seq 7000 7005`; do
  docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /home/redis-cluster/${port}/data:/data  --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf;
done

分别修改create_cluster.sh 和 start_cluster.sh权限

chmod 755 create_cluster.sh

chmod 755 start_cluster.sh

创建自定义network(redis-net)方便集群间通讯:docker network create redis-net

创建并启动容器:./create_cluster.sh && ./start_cluster.sh

3. 集群创建:

进入任意一个redis容器中,执行创建命令:

进入容器:docker exec -it redis-7000 /bin/bash

创建集群:

redis-cli --cluster create ip:7000 ip:7001 ip:7002  ip:7003  ip:7004  ip:7005   --cluster-replicas 1

(如果创建失败报错无法连接,则需要开启防火墙:

firewall-cmd --zone=public --add-port=7000-7005/tcp --permanent
firewall-cmd --zone=public --add-port=17000-17005/tcp --permanent
firewall-cmd --reload

最终测试:

进入docker exec -it redis-7000 /bin/bash 

连接redis:redis-cli -h xxxxx -p 7000 -c      (注意如果不加-c,则未使用集群方式连接,只能读不能保存)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值