Docker + Redis5.0.9集群,3主3从(分片 + 高可用 + 负载均衡)
2021/12/25 19:37:16
本文主要是介绍Docker + Redis5.0.9集群,3主3从(分片 + 高可用 + 负载均衡),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在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
这篇关于Docker + Redis5.0.9集群,3主3从(分片 + 高可用 + 负载均衡)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31Tiny RDM:你的下一代Redis桌面GUI神器-icode9专业技术文章分享
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!