Redis 集群是一種分布式的 Redis 解決方案,能夠在多個節(jié)點之間分片存儲數(shù)據(jù),實現(xiàn)水平擴展和高可用性。與傳統(tǒng)的主從架構(gòu)不同,Redis 集群支持數(shù)據(jù)自動分片、主節(jié)點故障自動切換,并可以在多臺服務(wù)器之間平衡負載,確保系統(tǒng)的高可用性和數(shù)據(jù)一致性
搭建 Redis 集群
1、購買華為云 Flexus X 實例
Flexus云服務(wù)器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命令可以創(chuàng)建一個自定義的 Docker 網(wǎng)絡(luò),用于連接容器,創(chuàng)建 Redis 集群時,容器需要在同一網(wǎng)絡(luò)中以便彼此通信
docker network create redis-cluster-net
5、啟動了三個 Redis 容器實例,每個實例位于自定義網(wǎng)絡(luò) redis-cluster-net中,且 Redis 集群模式已開啟,作為主節(jié)點
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 從節(jié)點 redis-slave1, redis-slave2, redis-slave3,接下來需要將這些從節(jié)點加入到 Redis 集群中,指定它們分別作為主節(jié)點的從節(jié)點
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、進入之前的任意一個主節(jié)點容器,比如 redis-master1
dockerexec -itredis-master1 /bin/bash
8、使用 redis-cli連接到 Redis 集群并配置從節(jié)點,需要知道每個主節(jié)點和從節(jié)點的容器 IP 地址或主機名,此處查詢?nèi)萜?IP 地址或主機名
dockerinspect redis-master1 |grepIPAddressdockerinspect redis-master2 |grepIPAddressdockerinspect redis-master3 |grepIPAddressdockerinspect redis-slave1 |grepIPAddressdockerinspect redis-slave2 |grepIPAddressdockerinspect redis-slave3 |grepIPAddress
9、將從節(jié)點添加到集群,創(chuàng)建 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 服務(wù)器進行交互。
--cluster create:
?指示 redis-cli以集群模式創(chuàng)建 Redis 集群。
172.18.0.2:6379, 172.18.0.3:6379, 172.18.0.4:6379:
?這三個 IP 地址和端口組合代表要添加到集群中的主節(jié)點。
?主節(jié)點負責(zé)處理寫入和讀取請求。
172.18.0.5:6379, 172.18.0.6:6379, 172.18.0.7:6379:
?這三個 IP 地址和端口組合代表要添加到集群中的從節(jié)點。
?從節(jié)點是主節(jié)點的數(shù)據(jù)副本,提供冗余和高可用性。
--cluster-replicas 1:
?指定每個主節(jié)點有一個從節(jié)點(副本)。這意味著在創(chuàng)建集群時,Redis 將自動為每個主節(jié)點分配一個從節(jié)點
10、檢查集群狀態(tài)
redis-cli-c-p6379 cluster nodes
?如上 redis 集群就算部署成功了,接下來可以實現(xiàn)數(shù)據(jù)存儲和管理、集群管理、性能優(yōu)化等
數(shù)據(jù)存儲和管理
數(shù)據(jù)寫入:使用 SET 和 GET 命令存儲和檢索數(shù)據(jù)
redis-cli-c-p6379 SET mykey "Hello, Redis!"redis-cli-c-p6379 GET mykey
數(shù)據(jù)結(jié)構(gòu): 利用 Redis 提供的多種數(shù)據(jù)結(jié)構(gòu)(如列表、集合、有序集合、哈希等)進行復(fù)雜數(shù)據(jù)操作
集群管理
監(jiān)控集群狀態(tài): 使用 CLUSTER INFO 命令獲取集群的狀態(tài)信息
redis-cli-c-p6379 CLUSTER INFO
添加/刪除節(jié)點: 根據(jù)需求,可以動態(tài)地添加或移除節(jié)點
性能優(yōu)化
監(jiān)控性能: 使用 INFO 命令監(jiān)控 Redis 的性能指標,了解內(nèi)存使用、命令統(tǒng)計等
redis-cli-c-p6379 INFO
總結(jié)
華為云 Flexus X 實例上搭建 Docker 集成的 Redis 集群,體會到了云計算與容器技術(shù)的強大結(jié)合,繼續(xù)探索更復(fù)雜的架構(gòu),提升應(yīng)用的性能和可擴展性,為發(fā)和運維技能提升奠定了堅實的基礎(chǔ),如果有小伙伴和我一樣需要持續(xù)學(xué)習(xí)可以一同購買華為云 Flexus X 實例搭建案例學(xué)習(xí),此刻也是華為云 828 Flexus X 實例大力優(yōu)惠時刻,性價比非常高!
華為云828 Flexus X實例
審核編輯 黃宇
-
云服務(wù)器
+關(guān)注
關(guān)注
0文章
725瀏覽量
13409 -
Docker
+關(guān)注
關(guān)注
0文章
492瀏覽量
11927 -
華為云
+關(guān)注
關(guān)注
3文章
2682瀏覽量
17556
發(fā)布評論請先 登錄
相關(guān)推薦
評論