当前位置: 首页 > news >正文

Docker笔记-部署Redis集群

Docker笔记-部署Redis集群

1、创建网络

[root@zsx ~]# docker network create redis --subnet 172.38.0.0/16
a9c1f34037c302b3e79d800f7b09259b9a87da8b51c40f98ab9b84061b27b8dd[root@zsx ~]# docker network inspect redis
[{"Name": "redis","Id": "a9c1f34037c302b3e79d800f7b09259b9a87da8b51c40f98ab9b84061b27b8dd","Created": "2024-03-01T15:46:28.77951453+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "172.38.0.0/16"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {},"Labels": {}}
]

2、通过脚本创建六个redis配置

#! /bin/bashfor 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

3、通过脚本启动六个redis

#! /bin/bashfor port in $(seq 1 6);
do
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;
done

4、查看启动情况

[root@zsx ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED              STATUS              PORTS                                                                                      NAMES
7d4a68641edd   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6376->6379/tcp, :::6376->6379/tcp, 0.0.0.0:16376->16379/tcp, :::16376->16379/tcp   redis-6
0b3e1633f734   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6375->6379/tcp, :::6375->6379/tcp, 0.0.0.0:16375->16379/tcp, :::16375->16379/tcp   redis-5
d60bcbb40d90   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6374->6379/tcp, :::6374->6379/tcp, 0.0.0.0:16374->16379/tcp, :::16374->16379/tcp   redis-4
de1c5fd59afb   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6373->6379/tcp, :::6373->6379/tcp, 0.0.0.0:16373->16379/tcp, :::16373->16379/tcp   redis-3
09dff3c5cc31   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6372->6379/tcp, :::6372->6379/tcp, 0.0.0.0:16372->16379/tcp, :::16372->16379/tcp   redis-2
b322b00448f1   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6371->6379/tcp, :::6371->6379/tcp, 0.0.0.0:16371->16379/tcp, :::16371->16379/tcp   redis-1

在这里插入图片描述

5、创建集群

# 进入集群,然后进行下面的命令创建集群
[root@zsx ~]# docker exec -it 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.3
8.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: ec83381611410064ccf26f995957428e0deba3a2 172.38.0.11:6379slots:[0-5460] (5461 slots) master
M: a8da41a4b81dbb4fe532040eb701b7d20b125497 172.38.0.12:6379slots:[5461-10922] (5462 slots) master
M: ea543d3f484f1c959c20ba86646f8f0ea17231db 172.38.0.13:6379slots:[10923-16383] (5461 slots) master
S: 10b1fb8ce73a6c2f28d0b3cfd994c52e429d2a44 172.38.0.14:6379replicates ea543d3f484f1c959c20ba86646f8f0ea17231db
S: c9eadef97cb0086a307aca411ac9c49fd0f0b162 172.38.0.15:6379replicates ec83381611410064ccf26f995957428e0deba3a2
S: afaffd4d7f90d991da65c266fd8c0ae98d036152 172.38.0.16:6379replicates a8da41a4b81dbb4fe532040eb701b7d20b125497
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: ec83381611410064ccf26f995957428e0deba3a2 172.38.0.11:6379slots:[0-5460] (5461 slots) master1 additional replica(s)
S: 10b1fb8ce73a6c2f28d0b3cfd994c52e429d2a44 172.38.0.14:6379slots: (0 slots) slavereplicates ea543d3f484f1c959c20ba86646f8f0ea17231db
M: ea543d3f484f1c959c20ba86646f8f0ea17231db 172.38.0.13:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: c9eadef97cb0086a307aca411ac9c49fd0f0b162 172.38.0.15:6379slots: (0 slots) slavereplicates ec83381611410064ccf26f995957428e0deba3a2
S: afaffd4d7f90d991da65c266fd8c0ae98d036152 172.38.0.16:6379slots: (0 slots) slavereplicates a8da41a4b81dbb4fe532040eb701b7d20b125497
M: a8da41a4b81dbb4fe532040eb701b7d20b125497 172.38.0.12:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)
[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 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:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:123
cluster_stats_messages_pong_sent:121
cluster_stats_messages_sent:244
cluster_stats_messages_ping_received:116
cluster_stats_messages_pong_received:123
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:244
127.0.0.1:6379> cluster nodes
10b1fb8ce73a6c2f28d0b3cfd994c52e429d2a44 172.38.0.14:6379@16379 slave ea543d3f484f1c959c20ba86646f8f0ea17231db 0 1709280277000 4 connected
ea543d3f484f1c959c20ba86646f8f0ea17231db 172.38.0.13:6379@16379 master - 0 1709280277081 3 connected 10923-16383
c9eadef97cb0086a307aca411ac9c49fd0f0b162 172.38.0.15:6379@16379 slave ec83381611410064ccf26f995957428e0deba3a2 0 1709280277589 5 connected
afaffd4d7f90d991da65c266fd8c0ae98d036152 172.38.0.16:6379@16379 slave a8da41a4b81dbb4fe532040eb701b7d20b125497 0 1709280278601 6 connected
a8da41a4b81dbb4fe532040eb701b7d20b125497 172.38.0.12:6379@16379 master - 0 1709280277000 2 connected 5461-10922
ec83381611410064ccf26f995957428e0deba3a2 172.38.0.11:6379@16379 myself,master - 0 1709280277000 1 connected 0-5460
127.0.0.1:6379> set a b
-> Redirected to slot [15495] located at 172.38.0.13:6379
OK
172.38.0.13:6379> get a
"b"
172.38.0.13:6379> exit
/data # exit
http://www.dtcms.com/a/286464.html

相关文章:

  • leetcode15.三数之和题解:逻辑清晰带你分析
  • AWS(基础)
  • 网络基础10 :ACL真机实验
  • Redis原理之哨兵机制(Sentinel)
  • 【洛谷P1417】烹调方案 题解
  • ONNX模型使用指南:从零开始掌握跨领域模型部署
  • 图片平铺下去总是有个缝隙的解决方案
  • 塞舌尔公司的查册报告Certificate of Official Search是什么?有什么信息
  • 瀚高数据库开启Oracle兼容模块
  • vue2 面试题及详细答案150道(101 - 120)
  • ubuntu20.04使用unity3d做机器人仿真环境搭建
  • Python单例模式详解:从原理到实战的完整指南
  • 详解Linux(Ubuntu/RedHat/CentOS)及国产服务器统一加域管理方案
  • GoC 上册课程
  • java+vue+SpringBoot集团门户网站(程序+数据库+报告+部署教程+答辩指导)
  • docker--程序自启动
  • HIMA X-DO3201模块的冗余配置方法
  • Python Pandas 实践学习笔记(1)
  • Chainlit + FasiAPI+ LlamaIndex 实现RAG(一)
  • 深入解析:短连接 vs 长连接 vs 短轮询 vs 长轮询
  • keil5使用技巧----keil-build-viewer.exe插件使用
  • 前端性能优化“核武器”:新一代图片格式(AVIF/WebP)与自动化优化流程实战
  • Ubuntu查看Docker容器
  • React智能Tooltip封装术:精准检测文本溢出,告别无效提示!
  • Linux下使用原始socket收发数据包
  • 4644电源管理芯片在微波射频组件中的技术优势与国产化实践
  • 《5分钟开发订单微服务!飞算JavaAI实战:IDEA插件安装→空指针修复→K8s部署全流程》
  • 高并发、高性能、高可用
  • LeetCode热题100【第4天】
  • openinstall九周年:聚焦安全防御,护航业务持续增长