创建redis的网卡
root@zhao:~
NETWORK ID NAME DRIVER SCOPE
f01a4d9c70eb bridge bridge local
bbce1be658de host host local
468d5c1bcf93 none null local
root@zhao:~
0c21979c5ca41975e01930b7e22c1c9a80335cf64f3b1ade59305c1e6e344129
root@zhao:~
NETWORK ID NAME DRIVER SCOPE
f01a4d9c70eb bridge bridge local
bbce1be658de host host local
468d5c1bcf93 none null local
0c21979c5ca4 redis bridge local
准备redis的配置文件
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;
启动容器
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
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
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
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
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
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:~
创建集群
/data
>> > 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
验证集群
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