ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Docker + Redis5.0.9集群,3主3从(分片 + 高可用 + 负载均衡)

2021-12-25 19:33:12  阅读:194  来源: 互联网

标签:node -- redis cluster 172.38 Redis5.0 conf 分片 Docker


在Docker中部署Redis集群,3台主服务 + 3台从服务,实现分片,高可用,负载均衡。

Redis集群模型:

 【第1步】创建一个新的网络,取名叫redis

docker network create redis --subnet 172.38.0.0/16

查看网络

docker network ls

  

 【第2步】创建 redis配置文件

通过脚本创建6个redis的node目录与redis配置文件:

for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
cat << EOF > /mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

6个redis的ip地址分别为 172.38.0.11 到 172.38.0.16

6个node-x目录,node-1节点与node-6节点的配置文件内容分别为如下图:

  

 redis-1节点的配置内容为:

port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.11
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes

6个配置文件除了cluster-announce-ip的值不一样,其它都一样。

【第3步】分别启动6个redis容器

启动redis-1
docker run -d --name redis-1 -p 6371:6379 -p 16371:16379 --restart=always \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
--net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-2
docker run -d --name redis-2 -p 6372:6379 -p 16372:16379 --restart=always \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
--net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-3
docker run -d --name redis-3 -p 6373:6379 -p 16373:16379 --restart=always \
-v /mydata/redis/node-3/data:/data \
-v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
--net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-4
docker run -d --name redis-4 -p 6374:6379 -p 16374:16379 --restart=always \
-v /mydata/redis/node-4/data:/data \
-v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
--net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-5
docker run -d --name redis-5 -p 6375:6379 -p 16375:16379 --restart=always \
-v /mydata/redis/node-5/data:/data \
-v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
--net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-6
docker run -d --name redis-6 -p 6376:6379 -p 16376:16379 --restart=always \
-v /mydata/redis/node-6/data:/data \
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
--net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

 

  

 【第4步】创建集群

任意进入其中一个 redis节点,比如进入redis-1节点。

docker exec -it redis-1 /bin/sh
ls

  

进入 redis 节点后,默认是/data  目录。

用redis-cli --cluster create命令创建集群

redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379  172.38.0.14:6379  172.38.0.15:6379  172.38.0.16:6379 --cluster-replicas 1

执行过程中会提示是否同意上面的配置 :

Can I set the above configuration? (type 'yes' to accept): 

输入yes

集群创建完成后,输出信息:

  

【第5步】连接集群

连接集群
redis-cli -c

注意,连接集群需要加 -c 参数,不加-c参数会连接单机。

  

 查看集群信息

查看集群信息
cluster info

 

 三个主节点。

查看集群节点信息:

查看集群节点信息
cluster nodes

 

ip末位为 11,12,13的节点为主,ip末位为14,15,16的节点为从。

当前节点为172.38.0.11

设置与读取值

set key1 value1
set key2 value2
set key3 value3
set key4 value4
set key5 value5
set key6 value6
get key1
get key2
get key3

 

 

标签:node,--,redis,cluster,172.38,Redis5.0,conf,分片,Docker
来源: https://www.cnblogs.com/yyee/p/15731268.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有