代码拉取完成,页面将自动刷新
docker redis cluster 集群 一键启动 演示视频在video目录下
docker 版本19.03.8
docker-compose 版本 1.25.5
redis 镜像版本 redis:5
sh start.sh
使用docker-compose 启动6个redis节点 并创建主从集群
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a60419c79b98 redis:5 "docker-entrypoint.s…" 54 minutes ago Up 54 minutes redis8
9414adc6f70a redis:5 "docker-entrypoint.s…" 54 minutes ago Up 54 minutes redis7
08f645b19693 redis:5 "docker-entrypoint.s…" About an hour ago Up About an hour redis6
ae7724ac6ddd redis:5 "docker-entrypoint.s…" About an hour ago Up About an hour redis1
48b015feb048 redis:5 "docker-entrypoint.s…" About an hour ago Up About an hour redis2
8b6164fb4775 redis:5 "docker-entrypoint.s…" About an hour ago Up About an hour redis4
33af9be60625 redis:5 "docker-entrypoint.s…" About an hour ago Up About an hour redis5
a66526860dfc redis:5 "docker-entrypoint.s…" About an hour ago Up About an hour redis3
使用redis-cli 查看集群信息
$ sh cli.sh
127.0.0.1:7000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:8
cluster_size:4
cluster_current_epoch:7
cluster_my_epoch:1
cluster_stats_messages_ping_sent:10105
cluster_stats_messages_pong_sent:10071
cluster_stats_messages_update_sent:10
cluster_stats_messages_sent:20186
cluster_stats_messages_ping_received:10064
cluster_stats_messages_pong_received:10105
cluster_stats_messages_meet_received:7
cluster_stats_messages_update_received:1
cluster_stats_messages_received:20177
使用jedis连接集群 测试
新启动两个redis节点
docker run -d --net=host -v $PWD/conf/redis7.conf:/usr/local/etc/redis/redis.conf --name redis7 redis:5 redis-server /usr/local/etc/redis/redis.conf
docker run -d --net=host -v $PWD/conf/redis8.conf:/usr/local/etc/redis/redis.conf --name redis8 redis:5 redis-server /usr/local/etc/redis/redis.conf
添加新的主节点到集群中
docker exec -it redis1 sh -c 'redis-cli -p 7000 --cluster add-node 127.0.0.1:7010 127.0.0.1:7000'
分配slots
docker exec -it redis7 sh -c 'redis-cli -p 7010 --cluster reshard 127.0.0.1:7010'
添加新的主节点的从节点
docker exec -it redis7 sh -c 'redis-cli -p 7010 --cluster add-node 127.0.0.1:7011 127.0.0.1:7010 --cluster-slave --cluster-master-id 898a6abb5a2bf5f653ad204215354882c1d6a766' #选择实际的master节点id
查看结果
127.0.0.1:7000> cluster slots
1) 1) (integer) 0
2) (integer) 998
3) 1) "127.0.0.1"
2) (integer) 7010
3) "898a6abb5a2bf5f653ad204215354882c1d6a766"
4) 1) "127.0.0.1"
2) (integer) 7011
3) "05a3439a6c3da793b00ad7a9bd628e83da252e2f"
2) 1) (integer) 5461
2) (integer) 6461
3) 1) "127.0.0.1"
2) (integer) 7010
3) "898a6abb5a2bf5f653ad204215354882c1d6a766"
4) 1) "127.0.0.1"
2) (integer) 7011
3) "05a3439a6c3da793b00ad7a9bd628e83da252e2f"
3) 1) (integer) 10923
2) (integer) 11921
3) 1) "127.0.0.1"
2) (integer) 7010
3) "898a6abb5a2bf5f653ad204215354882c1d6a766"
4) 1) "127.0.0.1"
2) (integer) 7011
3) "05a3439a6c3da793b00ad7a9bd628e83da252e2f"
4) 1) (integer) 11922
2) (integer) 16383
3) 1) "127.0.0.1"
2) (integer) 7002
3) "4455484e5c121e6b63e64aa8521d9dfdac3a2fcc"
4) 1) "127.0.0.1"
2) (integer) 7005
3) "e633625826d146058032953098a7eb11a3129085"
5) 1) (integer) 6462
2) (integer) 10922
3) 1) "127.0.0.1"
2) (integer) 7001
3) "92073f679c75f3dba0d88049126b6eca1934d63d"
4) 1) "127.0.0.1"
2) (integer) 7004
3) "e398c637da7ae1d2ec8b8990098a211f152cdc42"
6) 1) (integer) 999
2) (integer) 5460
3) 1) "127.0.0.1"
2) (integer) 7000
3) "9a0fd32ec83414ba070f81fee31f8c05ad31bc8d"
4) 1) "127.0.0.1"
2) (integer) 7003
3) "73bfc413b4902013354fb8ebb3abc8172a5bc6d0"
mac 不支持docker使用host网络模式导致容器外无法访问。
https://redis.io/topics/cluster-tutorial#redis-cluster-and-docker
解决方式: 使用centOs搭建集群
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。