溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis7.0部署集群怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2022-09-20 15:12:17 來(lái)源:億速云 閱讀:164 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Redis7.0部署集群怎么實(shí)現(xiàn)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Redis7.0部署集群怎么實(shí)現(xiàn)”文章吧。

Redis7.0部署集群詳細(xì)版

集群的架構(gòu):集群就是使用網(wǎng)絡(luò)將若干臺(tái)計(jì)算機(jī)聯(lián)通起來(lái),并提供統(tǒng)一的管理方式,使其對(duì)外呈現(xiàn)單機(jī)的服務(wù)效果

集群的作用:

  • 分散單臺(tái)服務(wù)器的訪問(wèn)壓力,實(shí)現(xiàn)負(fù)載均衡

  • 分散單臺(tái)服務(wù)器的存儲(chǔ)壓力,實(shí)現(xiàn)可擴(kuò)展性

  • 降低單臺(tái)服務(wù)器宕機(jī)帶來(lái)業(yè)務(wù)災(zāi)難

Redis7.0部署集群怎么實(shí)現(xiàn)

1、Redis集群內(nèi)部結(jié)構(gòu)設(shè)計(jì)

數(shù)據(jù)存儲(chǔ)設(shè)計(jì)

  • 通過(guò)算法設(shè)計(jì),計(jì)算出key應(yīng)該保存的位置

  • 將所有的存儲(chǔ)空間計(jì)劃切割成16384份,每臺(tái)主機(jī)保存一部分,每份代表的是一個(gè)存儲(chǔ)空間,不是一個(gè)key的保存空間

  • 將key按照計(jì)算出的結(jié)果放到對(duì)應(yīng)的存儲(chǔ)空間

  • 增強(qiáng)可擴(kuò)展性(有新的存儲(chǔ)空間加入,官方叫做

集群內(nèi)部通訊設(shè)計(jì)

  • 各個(gè)數(shù)據(jù)庫(kù)相互通信,保存各個(gè)庫(kù)中槽的編號(hào)數(shù)據(jù)

  • 一次命中,直接返回

  • 一次未命中,告知具體位置

2、cluster集群內(nèi)部結(jié)構(gòu)搭建

在虛擬機(jī)中啟動(dòng)多個(gè)窗口進(jìn)行集群搭建演示

Redis7.0部署集群怎么實(shí)現(xiàn)

主要命令在主命令操作客戶端執(zhí)行

修改redis.conf配置文件

添加如下內(nèi)容

cluster-enabled yes # 啟動(dòng)為節(jié)點(diǎn)
cluster-config-file nodes-6379.conf # cluster配置文件名,該文件屬于自動(dòng)生成,僅用于快速查找文件并查詢文件內(nèi)容
cluster-node-timeout 10000 # 節(jié)點(diǎn)服務(wù)響應(yīng)超時(shí)時(shí)間,用于判定該節(jié)點(diǎn)是否下線或切換為從節(jié)點(diǎn)
cluster-migration-barrier <count> # master連接的slave最小數(shù)量

快速?gòu)?fù)制5分配置文件并替換里面的端口

[root@localhost conf]# sed "s/6379/6380/g" redis-6379.conf > redis-6380.conf 
[root@localhost conf]# sed "s/6379/6381/g" redis-6379.conf > redis-6381.conf 
[root@localhost conf]# sed "s/6379/6382/g" redis-6379.conf > redis-6382.conf 
[root@localhost conf]# sed "s/6379/6383/g" redis-6379.conf > redis-6383.conf 
[root@localhost conf]# sed "s/6379/6384/g" redis-6379.conf > redis-6384.conf 
[root@localhost conf]# sed "s/6379/6385/g" redis-6379.conf > redis-6385.conf

全部執(zhí)行后可以通過(guò)cat指令查看內(nèi)容確保被修改

啟動(dòng)redis服務(wù)集群

# 在第一個(gè)窗口執(zhí)行6379服務(wù)
redis-server redis-6379.conf
# 在第二個(gè)窗口執(zhí)行6380服務(wù)
redis-server redis-6380.conf
# 在第三個(gè)窗口執(zhí)行6381服務(wù)
redis-server redis-6381.conf
# 下面的代碼依次類推到6385

執(zhí)行命令查看redis進(jìn)程和端口

ps -ef | grep redis-

Redis7.0部署集群怎么實(shí)現(xiàn)

連接節(jié)點(diǎn)

在src目錄下查看redis-trib.rb

在高版本中已經(jīng)將啟動(dòng)操作移動(dòng)到redis-cli

啟動(dòng)需要兩個(gè)下載兩個(gè)文件分別是rubygem

# 下載命令也會(huì)將gem一起
yum -y install rubygems

 

 # --cluster create 創(chuàng)建集群
 # --cluster-replicas 1 指定集群的內(nèi)部結(jié)構(gòu)(1代表一個(gè)master連接1個(gè)slave,2代表一個(gè)master連接兩個(gè)save)
 # 后面的連接端口按數(shù)量實(shí)現(xiàn)master連接哪一個(gè)slave,1對(duì)1,1對(duì)2
 redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

執(zhí)行的結(jié)果如下

Redis7.0部署集群怎么實(shí)現(xiàn)

查看配置信息的結(jié)果如下

Redis7.0部署集群怎么實(shí)現(xiàn)

執(zhí)行yes命令后的信息如下

Redis7.0部署集群怎么實(shí)現(xiàn)

再次查看配置文件的信息,里面記錄這所有集群信息

啟動(dòng)客戶端存儲(chǔ)數(shù)據(jù)

因?yàn)槭褂昧思翰渴?,所以通過(guò)-c參數(shù)可以操作集群,如果不指定的是操作redis命令會(huì)提示(error) MOVED 5798 127.0.0.1:6380

注意:-c操作集群

redis-cli -c
# 創(chuàng)建key,通過(guò)返回信息可以知道key存儲(chǔ)到6380下了
127.0.0.1:6379> set name 123
-> Redirected to slot [5798] located at 127.0.0.1:6380
OK

指定端口連接客戶端

# 連接指定的集群客戶端
[root@localhost data]# redis-cli -c -p 6382
# 獲取key
127.0.0.1:6382> get name
-> Redirected to slot [5798] located at 127.0.0.1:6380
"123"
127.0.0.1:6380>

Cluster節(jié)點(diǎn)操作命令

查看集群節(jié)點(diǎn)信息

cluster nodes

進(jìn)入一個(gè)從節(jié)點(diǎn) redis,切換其主節(jié)點(diǎn)

cluster replicate <master-id>

發(fā)現(xiàn)一個(gè)新節(jié)點(diǎn),新增主節(jié)點(diǎn)

cluster meet ip:port

忽略一個(gè)沒(méi)有solt的節(jié)點(diǎn)

cluster forget <id>

手動(dòng)故障轉(zhuǎn)移

cluster failover

redis-trib命令

添加節(jié)點(diǎn)

redis-trib.rb add-node

刪除節(jié)點(diǎn)

redis-trib.rb del-node

重新分片

redis-trib.rb reshard

3、主從下線和主從切換

1、模擬從機(jī)下線操作

在從機(jī)服務(wù)器執(zhí)行Ctrl + C下載服務(wù)

觀察連接的主機(jī)情況,主機(jī)會(huì)在10秒內(nèi)連接不上從機(jī)就會(huì)標(biāo)記從機(jī)失敗,其他集群服務(wù)會(huì)連接上失敗的,其他服務(wù)會(huì)接收到信息

再次啟動(dòng)從機(jī),主機(jī)就會(huì)重新連接上從機(jī)

如果主機(jī)下線了,從機(jī)會(huì)某槽換位,當(dāng)主機(jī)重新上線的時(shí)候,原來(lái)的主機(jī)就會(huì)變成從機(jī)

以上就是關(guān)于“Redis7.0部署集群怎么實(shí)現(xiàn)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI