Redis 集群是一種分布式的 Redis 解決方案,能夠在多個節(jié)點之間分片存儲數(shù)據(jù),實現(xiàn)水平擴展和高可用性。與傳統(tǒng)的主從架構不同,Redis 集群支持數(shù)據(jù)自動分片、主節(jié)點故障自動切換,并可以在多臺服務器之間平衡負載,確保系統(tǒng)的高可用性和數(shù)據(jù)一致性
搭建 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命令可以創(chuàng)建一個自定義的 Docker 網(wǎng)絡,用于連接容器,創(chuàng)建 Redis 集群時,容器需要在同一網(wǎng)絡中以便彼此通信
docker network create redis-cluster-net
5、啟動了三個 Redis 容器實例,每個實例位于自定義網(wǎng)絡 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 地址或主機名,此處查詢容器 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 服務器進行交互。
--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é)點負責處理寫入和讀取請求。
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ù)結構: 利用 Redis 提供的多種數(shù)據(jù)結構(如列表、集合、有序集合、哈希等)進行復雜數(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 的性能指標,了解內存使用、命令統(tǒng)計等
redis-cli-c-p6379 INFO
總結
華為云 Flexus X 實例上搭建 Docker 集成的 Redis 集群,體會到了云計算與容器技術的強大結合,繼續(xù)探索更復雜的架構,提升應用的性能和可擴展性,為發(fā)和運維技能提升奠定了堅實的基礎,如果有小伙伴和我一樣需要持續(xù)學習可以一同購買華為云 Flexus X 實例搭建案例學習,此刻也是華為云 828 Flexus X 實例大力優(yōu)惠時刻,性價比非常高!
華為云828 Flexus X實例
審核編輯 黃宇
-
云服務器
+關注
關注
0文章
726瀏覽量
13422 -
Docker
+關注
關注
0文章
492瀏覽量
11962 -
華為云
+關注
關注
3文章
2682瀏覽量
17586
發(fā)布評論請先 登錄
相關推薦
云服務器 Flexus X 實例,Docker 集成搭建搭建 Flink
![<b class='flag-5'>云</b><b class='flag-5'>服務器</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>,<b class='flag-5'>Docker</b> <b class='flag-5'>集成</b><b class='flag-5'>搭建</b><b class='flag-5'>搭建</b> Flink](https://file1.elecfans.com//web3/M00/05/DE/wKgZO2eE6E6Ae2hhAAHTNgW-_vU656.png)
云服務器 Flexus X 實例,Docker 集成搭建 Grafana 開源數(shù)據(jù)可視化平臺
![<b class='flag-5'>云</b><b class='flag-5'>服務器</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>,<b class='flag-5'>Docker</b> <b class='flag-5'>集成</b><b class='flag-5'>搭建</b> Grafana 開源數(shù)據(jù)可視化平臺](https://file1.elecfans.com//web3/M00/05/C7/wKgZPGeExbOACluwAAHTNgW-_vU044.png)
華為云 Flexus X 實例 docker 部署 jdk21 最新版 jenkins 搭建自己的 devops 服務器
![華為<b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b> <b class='flag-5'>docker</b> 部署 jdk21 最新版 jenkins <b class='flag-5'>搭建</b>自己的 devops <b class='flag-5'>服務器</b>](https://file1.elecfans.com//web3/M00/04/92/wKgZO2d2DuuATjLvAAD1pSqJWDg995.png)
Flexus 云服務器 X 實例:在 Docker 環(huán)境下搭建 java 開發(fā)環(huán)境
![<b class='flag-5'>Flexus</b> <b class='flag-5'>云</b><b class='flag-5'>服務器</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>:在 <b class='flag-5'>Docker</b> 環(huán)境下<b class='flag-5'>搭建</b> java 開發(fā)環(huán)境](https://file1.elecfans.com//web3/M00/04/30/wKgZPGdxDsqAZxq9AAEJcgNsafo044.png)
基于華為云 Flexus 云服務器 X 實例部搭建 Halo 博客平臺
![基于華為<b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b><b class='flag-5'>服務器</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>部<b class='flag-5'>搭建</b> Halo 博客平臺](https://file1.elecfans.com//web3/M00/03/D4/wKgZO2dsEiuAKz3YAACZ1hQEldg800.png)
基于華為云 Flexus 云服務器 X 實例搭建 Linux 學習環(huán)境
![基于華為<b class='flag-5'>云</b> <b class='flag-5'>Flexus</b> <b class='flag-5'>云</b><b class='flag-5'>服務器</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b><b class='flag-5'>搭建</b> Linux 學習環(huán)境](https://file1.elecfans.com//web3/M00/03/BE/wKgZPGdry_OAXra5AACZ1sYpTAI572.png)
評論