电子说
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实例
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !