Redis7.0部署集群的實現(xiàn)步驟
Redis7.0部署集群詳細版
集群的架構(gòu):集群就是使用網(wǎng)絡(luò)將若干臺計算機聯(lián)通起來,并提供統(tǒng)一的管理方式,使其對外呈現(xiàn)單機的服務(wù)效果
集群的作用:
分散單臺服務(wù)器的訪問壓力,實現(xiàn)負載均衡
分散單臺服務(wù)器的存儲壓力,實現(xiàn)可擴展性
降低單臺服務(wù)器宕機帶來業(yè)務(wù)災(zāi)難
1、Redis集群內(nèi)部結(jié)構(gòu)設(shè)計
數(shù)據(jù)存儲設(shè)計
- 通過算法設(shè)計,計算出key應(yīng)該保存的位置
- 將所有的存儲空間計劃切割成16384份,每臺主機保存一部分,每份代表的是一個存儲空間,不是一個key的保存空間
- 將key按照計算出的結(jié)果放到對應(yīng)的存儲空間
- 增強可擴展性(有新的存儲空間加入,官方叫做
槽
)
集群內(nèi)部通訊設(shè)計
- 各個數(shù)據(jù)庫相互通信,保存各個庫中槽的編號數(shù)據(jù)
- 一次命中,直接返回
- 一次未命中,告知具體位置
2、cluster集群內(nèi)部結(jié)構(gòu)搭建
在虛擬機中啟動多個窗口進行集群搭建演示
主要命令在
主命令操作客戶端
執(zhí)行
修改redis.conf
配置文件
添加如下內(nèi)容
cluster-enabled yes # 啟動為節(jié)點 cluster-config-file nodes-6379.conf # cluster配置文件名,該文件屬于自動生成,僅用于快速查找文件并查詢文件內(nèi)容 cluster-node-timeout 10000 # 節(jié)點服務(wù)響應(yīng)超時時間,用于判定該節(jié)點是否下線或切換為從節(jié)點 cluster-migration-barrier <count> # master連接的slave最小數(shù)量
快速復(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í)行后可以通過
cat
指令查看內(nèi)容確保被修改
啟動redis服務(wù)集群
# 在第一個窗口執(zhí)行6379服務(wù) redis-server redis-6379.conf # 在第二個窗口執(zhí)行6380服務(wù) redis-server redis-6380.conf # 在第三個窗口執(zhí)行6381服務(wù) redis-server redis-6381.conf # 下面的代碼依次類推到6385
執(zhí)行命令查看redis進程和端口
ps -ef | grep redis-
連接節(jié)點
在src目錄下查看
redis-trib.rb
在高版本中已經(jīng)將啟動操作移動到
redis-cli
中啟動需要兩個下載兩個文件分別是
ruby
和gem
# 下載命令也會將gem一起 yum -y install rubygems
# --cluster create 創(chuàng)建集群 # --cluster-replicas 1 指定集群的內(nèi)部結(jié)構(gòu)(1代表一個master連接1個slave,2代表一個master連接兩個save) # 后面的連接端口按數(shù)量實現(xiàn)master連接哪一個slave,1對1,1對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
命令后的信息如下
再次查看配置文件的信息,里面記錄這所有集群信息
啟動客戶端存儲數(shù)據(jù)
因為使用了集群部署,所以通過
-c
參數(shù)可以操作集群,如果不指定的是操作redis命令會提示(error) MOVED 5798 127.0.0.1:6380
注意:
-c
操作集群
redis-cli -c # 創(chuàng)建key,通過返回信息可以知道key存儲到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é)點操作命令
查看集群節(jié)點信息
cluster nodes
進入一個從節(jié)點 redis,切換其主節(jié)點
cluster replicate <master-id>
發(fā)現(xiàn)一個新節(jié)點,新增主節(jié)點
cluster meet ip:port
忽略一個沒有solt的節(jié)點
cluster forget <id>
手動故障轉(zhuǎn)移
cluster failover
redis-trib命令
添加節(jié)點
redis-trib.rb add-node
刪除節(jié)點
redis-trib.rb del-node
重新分片
redis-trib.rb reshard
3、主從下線和主從切換
1、模擬從機下線操作
在從機服務(wù)器執(zhí)行
Ctrl + C
下載服務(wù)
觀察連接的主機情況,主機會在10秒內(nèi)連接不上從機就會標記從機失敗,其他集群服務(wù)會連接上失敗的,其他服務(wù)會接收到信息
再次啟動從機,主機就會重新連接上從機
如果主機下線了,從機會某槽換位,當主機重新上線的時候,原來的主機就會變成從機
到此這篇關(guān)于Redis7.0部署集群的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Redis7.0部署集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
window環(huán)境redis通過AOF恢復(fù)數(shù)據(jù)的方法
這篇文章主要介紹了window環(huán)境redis通過AOF恢復(fù)數(shù)據(jù)的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11redis key過期監(jiān)聽的實現(xiàn)示例
在Redis中,我們可以為Key設(shè)置過期時間,當Key的過期時間到達后,Redis會自動將該Key標記為已失效,本文就來介紹一下redis key過期監(jiān)聽的實現(xiàn)示例,感興趣的可以了解一下2024-03-03Redis和Nginx實現(xiàn)限制接口請求頻率的示例
限流就是限制API訪問頻率,當訪問頻率超過某個閾值時進行拒絕訪問等操作,本文主要介紹了Redis和Nginx實現(xiàn)限制接口請求頻率的示例,具有一定的參考價值,感興趣的可以了解一下2024-02-02