栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

工作记录:在linux系统用docker搭建redis的cluster集群

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

工作记录:在linux系统用docker搭建redis的cluster集群

一、自定义网络

集群的节点之间有着约定的ip,如果创建容器使用默认的网络,容器重启后ip会变化。所以需要自定义网络,创建容器时将ip挂载到自定义网络上。

必要命令

创建自定义网桥

docker network create -d bridge --subnet 172.72.0.0/16 --gateway 172.72.0.1 网络名 (16是16个1的意思,指172的子网掩码,–gateway是网关可以不写,会自动创建0.1为网关)
扩展命令

查询容器ip

docker inspect --format='{{.NetworkSettings.Networks.zoonet.IPAddress}}' 容器id/容器名

查看所有网络信息

docker network ls

查看某一网络ip分配情况

docker network inspect 网络id/网络名

删除网络

docker network rm 网络id/网络名
二、准备redis.conf文件

Redis集群至少需要3个master节点,而每个master有一个slave用于挂掉顶上,所以要准备6个redis.conf文件。
redis6.2.5的redis.conf原始文件:提取码:nypw
为6个redis节点准备6个端口,从6391到6396。
以端口为6391的文件为例,需要改动的地方:

#bind 127.0.0.1 -::1 <-注释掉->
protected-mode no
port 6391
daemonize no <-非守护运行,否则与docker run 冲突->
#pidfile /var/run/redis_6379.pid <-注释掉,当服务器非守护运行时,不会创建pid文件->
logfile /opt/docker/redis_test/redis_6391/redis_6391.log<-默认为"",会导致没有log文件->
dbfilename dump_6391.rdb
dir /opt/docker/redis_test/redis_6391/ <-非常重要,rdb与log等文件挂载的目录->
masterauth 密码<-master密码->
requirepass 密码<-自己的密码->
<-masterauth与requirepass应一致,因为主从角色会切换->
<–cluster部分–>
cluster-enabled yes
cluster-announce-ip 192.168.XX.XX <-宿主ip->
cluster-announce-port 6391
cluster-announce-bus-port 16391 <-节点之间通信的总线端口,用6391+10000得到->
cluster-config-file nodes-6391.conf
三、创建文件夹环境

根据redis.conf的dir,准备目录/opt/docker/redis_test/,及底下的六个文件夹redis_6391~redis_6396。
以redis_6391为例,将redis_6391.conf与空的redis_6391.log放进/opt/docker/redis_test/redis_6391/,与dir和logfile一致,并将redis_6381文件夹与log文件chmod 777(也可在redis_test目录下chmod 777 -R ./授权所有下文件及子文件夹)。

四、创建容器 扩展命令

批量删除容器

docker ps -a | grep 容器关键字 | awk {'print $1'} | xargs docker rm -f
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号