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,但...