云服务器 Flexus X 实例,Docker 集成搭建 Redis 集群

电子说

1.3w人已加入

描述

Redis 集群是一种分布式的 Redis 解决方案,能够在多个节点之间分片存储数据,实现水平扩展和高可用性。与传统的主从架构不同,Redis 集群支持数据自动分片、主节点故障自动切换,并可以在多台服务器之间平衡负载,确保系统的高可用性和数据一致性

搭建 Redis 集群

1、购买华为云 Flexus X 实例

Flexus云服务器X实例-华为云 (huaweicloud.com)
 

2、安装 docker,并检查安装版本(此处我已安装不做演示)

curl -fsSL https://get.docker.com | bashdocker -version

华为云

3、拉取 redis 镜像

docker pull redis:6.0.8

华为云

4、使用 docker network create 命令可以创建一个自定义的 Docker 网络,用于连接容器,创建 Redis 集群时,容器需要在同一网络中以便彼此通信

docker network create redis-cluster-net

华为云

5、启动了三个 Redis 容器实例,每个实例位于自定义网络 redis-cluster-net 中,且 Redis 集群模式已开启,作为主节点

docker run -itd --name redis-master1 --network redis-cluster-net -p 6379:6379 -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes  --appendonly yes --port 6379

华为云

docker run -itd --name redis-master2 --network redis-cluster-net -p 6380:6379 -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes  --appendonly yes --port 6379

华为云

docker run -itd --name redis-master3 --network redis-cluster-net -p 6381:6379 -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes  --appendonly yes --port 6379

华为云

6、启动了三个 Redis 从节点 redis-slave1, redis-slave2, redis-slave3,接下来需要将这些从节点加入到 Redis 集群中,指定它们分别作为主节点的从节点

docker run -itd --name redis-slave1 --network redis-cluster-net -p 6382:6379 -v /data/redis/share/redis-slave-1:/data redis:6.0.8 --cluster-enabled yes  --appendonly yes --port 6379

华为云

docker run -itd --name redis-slave2 --network redis-cluster-net -p 6383:6379 -v /data/redis/share/redis-slave-2:/data  redis:6.0.8 --cluster-enabled yes  --appendonly yes --port 6379

华为云

docker run -itd --name redis-slave3 --network redis-cluster-net -p 6384:6379 -v /data/redis/share/redis-slave-3:/data  redis:6.0.8 --cluster-enabled yes  --appendonly yes --port 6379

华为云

7、进入之前的任意一个主节点容器,比如 redis-master1

docker exec -it redis-master1 /bin/bash

华为云

8、使用 redis-cli 连接到 Redis 集群并配置从节点,需要知道每个主节点和从节点的容器 IP 地址或主机名,此处查询容器 IP 地址或主机名

docker inspect redis-master1 | grep IPAddressdocker inspect redis-master2 | grep IPAddressdocker inspect redis-master3 | grep IPAddressdocker inspect redis-slave1 | grep IPAddressdocker inspect redis-slave2 | grep IPAddressdocker inspect redis-slave3 | grep IPAddress

华为云

9、将从节点添加到集群,创建 Redis 集群

redis-cli --cluster create 172.18.0.2:6379 172.18.0.3:6379 172.18.0.4:6379 172.18.0.5:6379 172.18.0.6:6379 172.18.0.7:6379 --cluster-replicas 1

redis-cli:

• Redis 的命令行工具,用于与 Redis 服务器进行交互。

--cluster create:

• 指示 redis-cli 以集群模式创建 Redis 集群。

172.18.0.2:6379, 172.18.0.3:6379, 172.18.0.4:6379:

• 这三个 IP 地址和端口组合代表要添加到集群中的主节点。

• 主节点负责处理写入和读取请求。

172.18.0.5:6379, 172.18.0.6:6379, 172.18.0.7:6379:

• 这三个 IP 地址和端口组合代表要添加到集群中的从节点。

• 从节点是主节点的数据副本,提供冗余和高可用性。

--cluster-replicas 1:

• 指定每个主节点有一个从节点(副本)。这意味着在创建集群时,Redis 将自动为每个主节点分配一个从节点

华为云

10、检查集群状态

redis-cli -c -p 6379 cluster nodes

华为云

• 如上 redis 集群就算部署成功了,接下来可以实现数据存储和管理、集群管理、性能优化等

数据存储和管理

数据写入:使用 SET 和 GET 命令存储和检索数据

redis-cli -c -p 6379 SET mykey "Hello, Redis!"redis-cli -c -p 6379 GET mykey

数据结构: 利用 Redis 提供的多种数据结构(如列表、集合、有序集合、哈希等)进行复杂数据操作

集群管理

监控集群状态: 使用 CLUSTER INFO 命令获取集群的状态信息

redis-cli -c -p 6379 CLUSTER INFO

添加/删除节点: 根据需求,可以动态地添加或移除节点

性能优化

监控性能: 使用 INFO 命令监控 Redis 的性能指标,了解内存使用、命令统计等

redis-cli -c -p 6379 INFO

总结

华为云 Flexus X 实例上搭建 Docker 集成的 Redis 集群,体会到了云计算与容器技术的强大结合,继续探索更复杂的架构,提升应用的性能和可扩展性,为发和运维技能提升奠定了坚实的基础,如果有小伙伴和我一样需要持续学习可以一同购买华为云 Flexus X 实例搭建案例学习,此刻也是华为云 828 Flexus X 实例大力优惠时刻,性价比非常高!

华为云828 Flexus X实例

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分