docker_redis集群

本文详细介绍了如何在Docker环境中创建Redis网络接口、配置集群节点、编写脚本批量创建容器及配置文件,最后通过`redis-cli`命令验证和管理Redis集群。
摘要由CSDN通过智能技术生成

在这里插入图片描述

创建redis的网卡

#现有网卡
root@zhao:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
f01a4d9c70eb        bridge              bridge              local
bbce1be658de        host                host                local
468d5c1bcf93        none                null                local
#创建网卡
root@zhao:~# docker network create --driver bridge --subnet 172.38.0.0/16 --gateway 172.38.0.1 redis
0c21979c5ca41975e01930b7e22c1c9a80335cf64f3b1ade59305c1e6e344129

root@zhao:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
f01a4d9c70eb        bridge              bridge              local
bbce1be658de        host                host                local
468d5c1bcf93        none                null                local
0c21979c5ca4        redis               bridge              local

准备redis的配置文件

#使用循环写配置文件
#!/bin/bash
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.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

#启动容器可以在脚本中启动
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf;

启动容器

#redis集群1
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
#redis集群2
docker run -p 6372:6379 -p 16372:16379 --name redis-2 \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
#redis集群3
docker run -p 6373:6379 -p 16373:16379 --name redis-3 \
-v /mydata/redis/node-3/data:/data \
-v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
#redis集群4
docker run -p 6374:6379 -p 16374:16379 --name redis-4 \
-v /mydata/redis/node-4/data:/data \
-v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
#redis集群5
docker run -p 6375:6379 -p 16375:16379 --name redis-5 \
-v /mydata/redis/node-5/data:/data \
-v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
#redis集群6
docker run -p 6376:6379 -p 16376:16379 --name redis-6 \
-v /mydata/redis/node-6/data:/data \
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

在这里插入图片描述

创建集群

进入容器

root@zhao:~# docker exec -ti redis-1 /bin/sh

创建集群

/data # 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
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
Adding replica 172.38.0.14:6379 to 172.38.0.13:6379
M: fca5da686049d5bfbdf50647812c80a1f1ae2837 172.38.0.11:6379
   slots:[0-5460] (5461 slots) master
M: a205bdc1c64eb34bfc0d23e57094dea5a8a0e1bd 172.38.0.12:6379
   slots:[5461-10922] (5462 slots) master
M: 67c0dcf475443f748ac4e519734ab53374bcba55 172.38.0.13:6379
   slots:[10923-16383] (5461 slots) master
S: e377805b84d17a7ede2e9d8735b74ff9d05a058a 172.38.0.14:6379
   replicates 67c0dcf475443f748ac4e519734ab53374bcba55
S: 6a7bad5694010af1a932b2d0939e382d11be0e83 172.38.0.15:6379
   replicates fca5da686049d5bfbdf50647812c80a1f1ae2837
S: 3c12cb078d2f8b052b23edabe0c1e98835ab810e 172.38.0.16:6379
   replicates a205bdc1c64eb34bfc0d23e57094dea5a8a0e1bd
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
...
>>> Performing Cluster Check (using node 172.38.0.11:6379)
M: fca5da686049d5bfbdf50647812c80a1f1ae2837 172.38.0.11:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 67c0dcf475443f748ac4e519734ab53374bcba55 172.38.0.13:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 3c12cb078d2f8b052b23edabe0c1e98835ab810e 172.38.0.16:6379
   slots: (0 slots) slave
   replicates a205bdc1c64eb34bfc0d23e57094dea5a8a0e1bd
S: 6a7bad5694010af1a932b2d0939e382d11be0e83 172.38.0.15:6379
   slots: (0 slots) slave
   replicates fca5da686049d5bfbdf50647812c80a1f1ae2837
M: a205bdc1c64eb34bfc0d23e57094dea5a8a0e1bd 172.38.0.12:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: e377805b84d17a7ede2e9d8735b74ff9d05a058a 172.38.0.14:6379
   slots: (0 slots) slave
   replicates 67c0dcf475443f748ac4e519734ab53374bcba55
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

进入集群

/data # redis-cli -c

验证集群

127.0.0.1:6379> cluster nodes
67c0dc...bcba55 172.38.0.13:6379@16379 master - 0 1651998181783 3 connected 10923-16383
3c12cb...ab810e 172.38.0.16:6379@16379 slave a205bd...8a0e1bd 0 1651998180773 6 connected
6a7bad...be0e83 172.38.0.15:6379@16379 slave fca5da...1ae2837 0 1651998180000 5 connected
fca5da...1ae2837 172.38.0.11:6379@16379 myself,master - 0 1651998181000 1 connected 0-5460
a205bd...8a0e1bd 172.38.0.12:6379@16379 master - 0 1651998180000 2 connected 5461-10922
e37780...05a058a 172.38.0.14:6379@16379 slave 6a7bad...be0e83 0 1651998181000 4 connected
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值