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 集群模式已开启,作为主节点
dockerrun -itd--nameredis-master1 --networkredis-cluster-net -p6379:6379 -v/data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabledyes --appendonlyyes --port6379

dockerrun -itd--nameredis-master2 --networkredis-cluster-net -p6380:6379 -v/data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabledyes --appendonlyyes --port6379

dockerrun -itd--nameredis-master3 --networkredis-cluster-net -p6381:6379 -v/data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabledyes --appendonlyyes --port6379

6、启动了三个 Redis 从节点 redis-slave1, redis-slave2, redis-slave3,接下来需要将这些从节点加入到 Redis 集群中,指定它们分别作为主节点的从节点
dockerrun -itd--nameredis-slave1 --networkredis-cluster-net -p6382:6379 -v/data/redis/share/redis-slave-1:/data redis:6.0.8 --cluster-enabledyes --appendonlyyes --port6379

dockerrun -itd--nameredis-slave2 --networkredis-cluster-net -p6383:6379 -v/data/redis/share/redis-slave-2:/data redis:6.0.8 --cluster-enabledyes --appendonlyyes --port6379

dockerrun -itd--nameredis-slave3 --networkredis-cluster-net -p6384:6379 -v/data/redis/share/redis-slave-3:/data redis:6.0.8 --cluster-enabledyes --appendonlyyes --port6379

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

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

9、将从节点添加到集群,创建 Redis 集群
redis-cli--clustercreate 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-replicas1
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-p6379 cluster nodes

•如上 redis 集群就算部署成功了,接下来可以实现数据存储和管理、集群管理、性能优化等
数据存储和管理
数据写入:使用 SET 和 GET 命令存储和检索数据
redis-cli-c-p6379 SET mykey "Hello, Redis!"redis-cli-c-p6379 GET mykey
数据结构: 利用 Redis 提供的多种数据结构(如列表、集合、有序集合、哈希等)进行复杂数据操作
集群管理
监控集群状态: 使用 CLUSTER INFO 命令获取集群的状态信息
redis-cli-c-p6379 CLUSTER INFO
添加/删除节点: 根据需求,可以动态地添加或移除节点
性能优化
监控性能: 使用 INFO 命令监控 Redis 的性能指标,了解内存使用、命令统计等
redis-cli-c-p6379 INFO
总结
华为云 Flexus X 实例上搭建 Docker 集成的 Redis 集群,体会到了云计算与容器技术的强大结合,继续探索更复杂的架构,提升应用的性能和可扩展性,为发和运维技能提升奠定了坚实的基础,如果有小伙伴和我一样需要持续学习可以一同购买华为云 Flexus X 实例搭建案例学习,此刻也是华为云 828 Flexus X 实例大力优惠时刻,性价比非常高!
华为云828 Flexus X实例
审核编辑 黄宇
-
云服务器
+关注
关注
0文章
830浏览量
14084 -
Docker
+关注
关注
0文章
526浏览量
14022 -
华为云
+关注
关注
3文章
2805浏览量
19091
发布评论请先 登录
云服务器 Flexus X 实例,Docker 集成搭建搭建 Flink
云服务器 Flexus X 实例,Docker 集成搭建 Grafana 开源数据可视化平台
华为云 Flexus X 实例 docker 部署 jdk21 最新版 jenkins 搭建自己的 devops 服务器
Flexus 云服务器 X 实例:在 Docker 环境下搭建 java 开发环境
基于华为云 Flexus 云服务器 X 实例部搭建 Halo 博客平台
基于华为云 Flexus 云服务器 X 实例搭建 Linux 学习环境

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