docker安装redis集群(单机)

创建文件以及文件夹

创建文件夹
mkdir 文件夹名称  
创建文件
touch 文件名称
  • pwd 当前目录地址
  • ll 获取当前文件夹下的文件详情(需要创建四个文件)

创建redis-cluster.tmpl   这是个redis配置文件(注释要单独一行,不然会报“FATAL CONFIG FILE ERROR :Bad directive or wrong number of arguments”错误)

protected-mode no 
##设置外部网络连接redis服务,默认是yes,即开启。开启protected-mode保护模式,需配置bind ip或者设置访问密码,关闭protected-mode模式,此时外部网络可以直接访问
port ${PORT}
##节点端口
daemonize no 
##指定redis是否要用守护线程的方式启动,默认no
appendonly yes 
##持久化模式
cluster-enabled yes
##cluster集群模式
cluster-config-file nodes.conf 
##集群配置名
cluster-node-timeout 15000
##超时时间
cluster-announce-ip 172.19.0.${TEMP} 
##实际为各节点网卡分配ip
cluster-announce-port ${PORT} 
##节点映射端口
cluster-announce-bus-port 1${PORT} 
##节点总线端 

创建creatRedisCluster.sh 这是个shell脚本,循环六次,在当前路径下创建文件夹以及创建六个节点的配置文件。‘’
服务配置文件

for port in `seq 7001 7006`; do \
  base=6999 \
  && ip=$[port-base] \
  && mkdir -p ${port}/conf \
  && PORT=${port} TEMP=${ip} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
  && mkdir -p ${port}/data;\
done

创建start.sh 这是个启动脚本,这里运行了六个节点,并做了端口映射以及容器卷的映射,注意修改容器卷的位置。这里也指定了redis的版本是5.0的版本,可以修改自己所需版本。

for port in `seq 7001 7006`; do
  docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
  -v /home/docker/redis/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /home/docker/redis/redis-cluster/${port}/data:/data --name redis-${port} --net redis-net -d redis:5.0 redis-server /usr/local/etc/redis/redis.conf;
done

创建stop.sh 这是个停止脚本。关闭并删除六个redis容器,也删除通一级下的六个文件夹

docker stop redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006 
 
docker rm redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006 
 
rm -rf 7001 7002 7003 7004 7005 7006

现在开始执行命令

1、创建自定义网卡redis-net

docker network create redis-net

2、查看网卡是否创建

docker network ls

3、查看虚拟网卡redis-net网关ip。我这ip是172.19.0.1 有些是172.18.0.1 所以如果有区别需要在配置文件redis-cluster.tmpl上修改网卡分配ip

docker network inspect redis-net | grep "Gateway" | grep --color=auto -P '(\d{1,3}.){3}\d{1,3}' -o

4、运行creatRedisCluster.sh 下面是运行后的效果

sh creatRedisCluster.sh 

5、运行start.sh 因为我没有下载redis:5.0的镜像,所以直接运行之后会去从仓库先下载镜像再运行。

6、进入其中一个节点容器

docker exec -it redis-7001 bash

7、执行集群命令(在容器里面执行)

/usr/local/bin/redis-cli --cluster create 172.19.0.2:7001 172.19.0.3:7002 172.19.0.4:7003 172.19.0.5:7004 172.19.0.6:7005 172.19.0.7:7006  --cluster-replicas 1

这就集群成功了!!!!

顺便说下,亲测,阿里云新增安全组开放端口不需要重启实例,直接加上就可以访问。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值