手撕Redis-3主3从集群

123 阅读3分钟

前言:

技术栈:

Linux版本:CentOS7

Docker

就喜欢手撕,其他话不多说直接上教程,有问题进行评论:

首先创建6台 Redis机器

docker run -d --name redis-node-1 --net host --privileged=true -v /c/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /c/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /c/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /c/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /c/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /c/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

## --net host使用宿主机IP和端口
## --cluster-enabled yes是否开启集群
## --appendonly yes是否持久化



-   docker run:用于在 Docker 中运行一个新的容器。
-   d:将容器设置为在后台运行(以守护进程方式)。
--  name redis-node-1:为容器指定一个名称,这里是 redis-node-1。
--net host:将容器与主机共享网络命名空间,使容器能够使用主机的网络。
--privileged=true:赋予容器特权,以便能够执行一些特殊操作(例如修改内核参数)。
-v /c/redis/share/redis-node-1:/data:将主机上的 /c/redis/share/redis-node-1 目录挂载到容器内的 /data 目录,用于持久化存储 Redis 数据。
redis:6.0.8:使用 Redis 6.0.8 版本的 Docker 镜像。
--cluster-enabled yes:启用 Redis 集群模式。
--appendonly yes:启用 AOF(Append-Only File)持久化模式,将写操作追加到文件末尾,实现数据持久化。
--port 6381:指定容器内 Redis 服务器监听的端口号为 6381。

查看启动状态

docker ps -a

进入第一个 Redis 节点容器

docker exec -it redis-node-1 sh

在第一个节点容器中,使用 redis-cli 命令创建集群

redis-cli --cluster create <node-1-ip>:6381 <node-2-ip>:6382 <node-3-ip>:6383 <node-4-ip>:6384 <node-5-ip>:6385 <node-6-ip>:6386 --cluster-replicas 1

其中,`<node-1-ip>` 到 `<node-6-ip>` 分别是每个节点容器所在主机的 IP 地址。请确保在命令中替换为实际的 IP 地址。

例如:
redis-cli --cluster create 120.55.85.243:6381 120.55.85.243:6382 120.55.85.243:6383 120.55.85.243:6384 120.55.85.243:6385 120.55.85.243:6386 --cluster-replicas 1

# 这将创建一个由 3 个主节点和 3 个从节点组成的 Redis 集群,其中每个主节点都有一个从节点作为备份。

等待集群创建完成后,您可以通过执行以下命令来验证集群状态

redis-cli -c -p 6381 cluster info
```

更换 `-p` 参数后的端口号,以查看其他节点的信息。

如果一切顺利,您将看到有关集群节点的信息以及它们的状态。

集群检查

redis-cli -p 6381
cluster nodes

测试

测试之间进行set k1 kv操作即可。

[root@iZbp1i87lkd50hwyfh3jdhZ ~]# docker exec -it redis-node-1 /bin/bash
root@iZbp1i87lkd50hwyfh3jdhZ:/data# redis-cli -p 6381 -c
# 参数-c是集群方式链接
127.0.0.1:6381> 

结尾

这只是在Docker中简单的搭建,正式项目中还需要考虑更多的场景,文章适用小白学习。

日常分享学习中的教程,都看到这里了,点个赞再走吧~