Redis(三) 集群搭建 day13

2021-09-05 13:12:27 字數 2635 閱讀 2578

redis 集群架構:

所有節點之間相互連通,內部使用二進位制協議優化傳輸速度和寬頻。

redis集群中內建16384個雜湊槽,每個key寫入的時候,都會由crc16演算法運算後用16384求餘,將這個key分配到相應的hash槽中,這16384個槽又被大致平均的分配到各個節點上。

集群不可用情況:

1.集合彙總超過半數的主節點掛掉。

2.任意主節點掛掉,並且沒有附節點。

單機安裝成功的基礎上
yum install ruby

yum install rubygems

拷貝redis-3.0.0.gem至/usr/local下

gem install /usr/local/redis-3.0.0.gem

建立redis-cluster,將原來單機redis 的bin目錄拷貝到其下面命名為redis01。

修改配置檔案(埠號以及 將cluster-enable 前面#刪掉 解開注釋 開啟)

刪除持久化檔案

拷貝上面的redis01,複製5份(因為是設定6個節點3主3附),修改各自的埠號。

開啟所有伺服器(寫乙個可執行檔案 startall.sh 增加執行許可權chmod +x startall.sh)

將解壓目錄下src中的 redis-trib.rb 複製到 cluster 中

執行./redis-trib.rb create --replicas 1 ip(位址):7001 ip(位址):7002 ip(位址):7003 ip(位址):7004 ip(位址):7005 ip(位址):7006

執行後顯示如下資訊

using 3 masters:

ip(位址):7001

ip(位址):7002

ip(位址):7003

adding replica ip(位址):7004 to ip(位址):7001

adding replica ip(位址):7005 to ip(位址):7002

adding replica ip(位址):7006 to ip(位址):7003

m: 9db019c6ba5b87689c79131bab7470ca517b5e09 ip(位址):7001

slots:0-5460 (5461 slots) master

m: 1b21e56918c8fb9a393d1abaf1952a5c878c2fc8 ip(位址):7002

slots:5461-10922 (5462 slots) master

m: 852ee0229723e79c0ca1bff80c6491182328f64e ip(位址):7003

slots:10923-16383 (5461 slots) master

s: b04e23c19687bfb8cf123d2daff73482c55373d4 ip(位址):7004

replicates 9db019c6ba5b87689c79131bab7470ca517b5e09

s: c781d7b0511fe741275dcc5b92a0c785d2f4fb1f ip(位址):7005

replicates 1b21e56918c8fb9a393d1abaf1952a5c878c2fc8

s: 43521f3b90fa9179767a87eca21e7609a7db8573 ip(位址):7006

replicates 852ee0229723e79c0ca1bff80c6491182328f64e

提示是否確定

can i set the above configuration? (type 'yes' to accept): yes 輸入yes

集群搭建好了

進入其中任意乙個例項比如redis01下 用客戶端連線集群

./redis-cli -h (ip位址) -p 7001 -c | -c 表示要連線集群

解釋選項–replicas 1 表示我們希望為集群中的每個主節點建立乙個從節點

m 主節點

s 附節點

slots:0-5460 (5461 slots) master 將0-5460 槽分給字節點1

出現錯誤,顯示槽沒有被全部分配,檢查主節點一發現0個槽被分配。。。 找了半天解決方法發現是自己應該輸入 yes 結果卻 輸入的 y。。難受

查詢錯誤時候用到redis-trib.rb 功能

所有功能·:

redis-trib.rb具有以下功能:

1、create:建立集群

2、check:檢查集群

3、info:檢視集群資訊

4、fix:修復集群

6、rebalance:平衡集群節點slot數量

7、add-node:將新節點加入集群

8、del-node:從集群中刪除節點

9、set-timeout:設定集群節點間心跳連線的超時時間

10、call:在集群全部節點上執行命令

11、import:將外部redis資料匯入集群

iptables -i input -p tcp --dport 8889 -j accept 開啟防火牆

Druid系列《三》集群

集群配置的規劃需要根據需求來定製,下面以乙個開發環境機器搭建為例,描述如何搭建乙個有ha特性的druid集群.集群部署有以下幾點需要說明 1.為了保證ha,主節點部署兩台 2.管理節點與查詢節點可以考慮多核大記憶體的機器 部署規劃 角色 機器 配置 集群角色 主節點10.5.24.137 8c16g...

Hadoop集群部署(三),集群時間同步

集群中的節點需要設定時間同步。這很自然,因為多節點協作,我們希望它們在時間上是同步的。解決方案就很簡單了,只保留乙個節點作為時間伺服器,其他兩個節點從該節點得到時間。步驟 在其中乙個節點配置ntp,這裡配置101主機 server 0.centos.pool.ntp.org iburst serve...

dubbo學習三 集群,執行緒模型

集群容錯 在集群呼叫失敗時,dubbo提供了多種容錯方案,預設為failover重試。1 這裡的invoker是provider的乙個可呼叫service的抽象,invoker封裝了provider位址及service 介面資訊。2 directory代表多個invoker,可以把它看成list,但...