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文章
692瀏覽量
13386 -
Docker
+關注
關注
0文章
487瀏覽量
11886 -
華為云
+關注
關注
3文章
2653瀏覽量
17496
發布評論請先 登錄
相關推薦
評論