Docker 安装Redis集群
本次部署的是在一台服务器上,用Doker容器运行的伪集群
创建一个redis网卡
network create redis --subnet 10.10.11.0/24
创建本地挂载目录
mkdir /data/redis/
for port in $(seq 1 6)
do
mkdir -p /data/redis/node-${port}/conf
touch /data/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 10.10.11.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
创建redis容器并启动
for port in $(seq 1 6)
do
docker run -p 637${port}:6379 -p 1637${port}:16379 --privileged=true --name redis-${port}
-v /data/redis/node-${port}/data:/data
-v /data/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf
-d --net redis --ip 10.10.11.1${port} redis redis-server /etc/redis/redis.conf
done
进入容器创建集群
docker exec -it redis-1 /bin/bash
执行如下命令创建集群
redis-cli --cluster create 10.10.11.11:6379 10.10.11.12:6379 10.10.11.13:6379 10.10.11.14:6379 10.10.11.15:6379 10.10.11.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 10.10.11.15:6379 to 10.10.11.11:6379
Adding replica 10.10.11.16:6379 to 10.10.11.12:6379
Adding replica 10.10.11.14:6379 to 10.10.11.13:6379
M: 8b0fab65b6fe15a712fa8038b6ff52900f727d24 10.10.11.11:6379
slots:[0-5460] (5461 slots) master
M: b8ed50eb5d97238e487ace35c185cd5d8b0e7514 10.10.11.12:6379
slots:[5461-10922] (5462 slots) master
M: 041b3bbe068c52f9f340724791eaa1f05c2d20a5 10.10.11.13:6379
slots:[10923-16383] (5461 slots) master
S: bc32111d23733afa042fb3beeb7c286ad26d87bf 10.10.11.14:6379
replicates 041b3bbe068c52f9f340724791eaa1f05c2d20a5
S: 2edd5fd4ab733c8f51bf5ac5a57a2a7efa0f6f43 10.10.11.15:6379
replicates 8b0fab65b6fe15a712fa8038b6ff52900f727d24
S: c55777666e743cb508cd1c03da73271d4c902c10 10.10.11.16:6379
replicates b8ed50eb5d97238e487ace35c185cd5d8b0e7514
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 10.10.11.11:6379)
M: 8b0fab65b6fe15a712fa8038b6ff52900f727d24 10.10.11.11:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 2edd5fd4ab733c8f51bf5ac5a57a2a7efa0f6f43 10.10.11.15:6379
slots: (0 slots) slave
replicates 8b0fab65b6fe15a712fa8038b6ff52900f727d24
M: b8ed50eb5d97238e487ace35c185cd5d8b0e7514 10.10.11.12:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: bc32111d23733afa042fb3beeb7c286ad26d87bf 10.10.11.14:6379
slots: (0 slots) slave
replicates 041b3bbe068c52f9f340724791eaa1f05c2d20a5
S: c55777666e743cb508cd1c03da73271d4c902c10 10.10.11.16:6379
slots: (0 slots) slave
replicates b8ed50eb5d97238e487ace35c185cd5d8b0e7514
M: 041b3bbe068c52f9f340724791eaa1f05c2d20a5 10.10.11.13:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
进入集群:
redis-cli -c
查看集群:
127.0.0.1:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:6
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:4518
cluster_stats_messages_pong_sent:4655
cluster_stats_messages_sent:9173
cluster_stats_messages_ping_received:4655
cluster_stats_messages_pong_received:4518
cluster_stats_messages_received:9173
total_cluster_links_buffer_limit_exceeded:0
127.0.0.1:6379>
`cluster nodes'
2edd5fd4ab733c8f51bf5ac5a57a2a7efa0f6f43 10.10.11.15:6379@16379 slave 8b0fab65b6fe15a712fa8038b6ff52900f727d24 0 1661491488043 1 connected
b8ed50eb5d97238e487ace35c185cd5d8b0e7514 10.10.11.12:6379@16379 master - 0 1661491488000 2 connected 5461-10922
8b0fab65b6fe15a712fa8038b6ff52900f727d24 10.10.11.11:6379@16379 myself,master - 0 1661491488000 1 connected 0-5460
bc32111d23733afa042fb3beeb7c286ad26d87bf 10.10.11.14:6379@16379 slave 041b3bbe068c52f9f340724791eaa1f05c2d20a5 0 1661491488043 3 connected
c55777666e743cb508cd1c03da73271d4c902c10 10.10.11.16:6379@16379 slave b8ed50eb5d97238e487ace35c185cd5d8b0e7514 0 1661491488545 2 connected
041b3bbe068c52f9f340724791eaa1f05c2d20a5 10.10.11.13:6379@16379 master - 0 1661491489047 3 connected 10923-163
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律