欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker安装redis集群(单机)

程序员文章站 2022-05-20 19:40:14
...

创建文件以及文件夹

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

docker安装redis集群(单机)

创建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

docker安装redis集群(单机)

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

docker安装redis集群(单机)

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

sh creatRedisCluster.sh 

docker安装redis集群(单机)

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

docker安装redis集群(单机)

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

docker exec -it redis-7001 bash

docker安装redis集群(单机)

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

docker安装redis集群(单机)

这就集群成功了!!!!

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

docker安装redis集群(单机)

 

相关标签: docker