0
点赞
收藏
分享

微信扫一扫

docker 部署redis集群

捡历史的小木板 2022-04-25 阅读 74

环境准备
创建redis专用网络

docker network create redis --subnet 100.100.0.0/16

通过脚本创建6个redis配置

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


cluster-enabled yes					#是否开启集群模式
cluster-config-file nodes.conf		#创建集群节点信息文件
cluster-node-timeout			    #集群节点超时设置
cluster-announce-ip					#集群节点IP设置
cluster-announce-port				#集群节点端口设置
cluster-announce-bus-port			#集群桥段端口

创建6台redis容器

docker run --name redis1 -p 6379:6379 -p 16379:16379 -d -v /root/redis/node-1/data:/data -v /root/redis/node-1/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.11 redis redis-server /etc/redis/redis.conf

docker run --name redis2 -p 6380:6379 -p 16380:16379 -d -v /root/redis/node-2/data:/data -v /root/redis/node-2/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.12 redis redis-server /etc/redis/redis.conf

docker run --name redis3 -p 6381:6379 -p 16381:16379 -d -v /root/redis/node-3/data:/data -v /root/redis/node-3/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.13 redis redis-server /etc/redis/redis.conf

docker run --name redis4 -p 6382:6379 -p 16382:16379 -d -v /root/redis/node-4/data:/data -v /root/redis/node-4/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.14 redis redis-server /etc/redis/redis.conf

docker run --name redis5 -p 6383:6379 -p 16383:16379 -d -v /root/redis/node-5/data:/data -v /root/redis/node-5/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.15 redis redis-server /etc/redis/redis.conf

docker run --name redis6 -p 6384:6379 -p 16384:16379 -d -v /root/redis/node-6/data:/data -v /root/redis/node-6/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.16 redis redis-server /etc/redis/redis.conf

创建集群

docker exec -it redis1 redis-cli --cluster create  100.100.0.11:6379 100.100.0.12:6379 100.100.0.13:6379 100.100.0.14:6379 100.100.0.15:6379 100.100.0.16:6379 --cluster-replicas 1

创建一个主从比例1:1的集群

测试集群

docker exec -it redis1 redis-cli -c
进入 redis 集群

cluster info
查看集群信息

cluster nodes
查看集群所有节点

set name dog
键入一个值

docker stop 执行的redis机器
down掉执行命令的redis机器

docker exec -it redis1 redis-cli -c
get name
重新登录集群并查看down掉机器输入的值

完美实现高可用
举报

相关推荐

0 条评论