您好,登錄后才能下訂單哦!
這篇“Redis7.0部署集群怎么實(shí)現(xiàn)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Redis7.0部署集群怎么實(shí)現(xiàn)”文章吧。
集群的架構(gòu):集群就是使用網(wǎng)絡(luò)將若干臺(tái)計(jì)算機(jī)聯(lián)通起來(lái),并提供統(tǒng)一的管理方式,使其對(duì)外呈現(xiàn)單機(jī)的服務(wù)效果
集群的作用:
分散單臺(tái)服務(wù)器的存儲(chǔ)壓力,實(shí)現(xiàn)可擴(kuò)展性
降低單臺(tái)服務(wù)器宕機(jī)帶來(lái)業(yè)務(wù)災(zāi)難
數(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ù)
一次命中,直接返回
一次未命中,告知具體位置
在虛擬機(jī)中啟動(dòng)多個(gè)窗口進(jì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-
連接節(jié)點(diǎn)
在src目錄下查看
redis-trib.rb
在高版本中已經(jīng)將啟動(dòng)操作移動(dòng)到
redis-cli
中啟動(dòng)需要兩個(gè)下載兩個(gè)文件分別是
ruby
和gem
# 下載命令也會(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é)果如下
查看配置信息的結(jié)果如下
執(zhí)行yes
命令后的信息如下
再次查看配置文件的信息,里面記錄這所有集群信息
啟動(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
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è)資訊頻道。
免責(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)容。