828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Redis集群
828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Redis集群
Redis 集群是一种分布式的 Redis 解决方案,能够在多个节点之间分片存储数据,实现水平扩展和高可用性。与传统的主从架构不同,Redis 集群支持数据自动分片、主节点故障自动切换,并可以在多台服务器之间平衡负载,确保系统的高可用性和数据一致性
搭建Redis集群
1、购买华为云 Flexus X 实例
Flexus云服务器X实例-华为云 (huaweicloud.com)
2、安装docker,并检查安装版本(此处我已安装不做演示)
curl -fsSL https://get.docker.com | bash docker -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 IPAddress docker inspect redis-master2 | grep IPAddress docker inspect redis-master3 | grep IPAddress docker inspect redis-slave1 | grep IPAddress docker inspect redis-slave2 | grep IPAddress docker 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实例