




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Redis相對于CdisdisRedisCluster將所有數據劃分為16384的slots,它?Codis的1024個槽劃分的更為精細,每個節點負責其中?部分槽位。槽位的信息存儲于每個節點中,它不像Codis,它不需要另外的分布式存儲當RedisCluster的客戶端來連接集群時,它也會得到?份集群的槽位配置信息。這樣當客戶端要查找某個key時,可以直接定位到?這點不同于Codis,Codis需要通過ProxyRedisClusterkey所在的節點,它就需要緩存槽位相關信息,這樣才可以準確快速另外,RedisClusterCluster默認會對key值使?crc16算法進?hash得到?個整數值,然后?這個整數值對16384進?取模來得到具體槽位。Cluster還允許?戶強制某個key掛在特定槽位上,通過在key字符串??嵌?tag標記,這就可以強制key所掛在的槽位等于tagdefdefs=key.index"{"ifse=key.index"}",s+1ife&&e!=s+1key=key[s+1..e-crc16(key)%當客戶端向?個錯誤的節點發出了指令,該節點會發現指令的keyGETGET-MOVED3999MOVED指令的第?個參數3999是key?標節點地址。MOVED指令前?有?個減號,表示該指令是?個錯MOVED指令后,要?即糾正本地的槽位映射表。后續所有key將使?新的槽位映射表。RedisCluster提供了?具redis-trib可以讓運維?員?動調整槽位的分配情況,它使?Ruby語?進?開發,通過組合各種原?的RedisCluster指令來實現。這點Codis做的更加?性化,它不但提供了UI界?可以讓我們?便的遷移,還提供了?動化平衡槽位?具,?需???預就可以均衡集群負載。不過Redis官?向來的策Redis遷移的單位是槽,Redis?個槽?個槽進?遷移,當?個槽正遷移?具rdistribky(kynslt)k進?遷移。每個kyk執?dumprstor攜O從源節點獲取內容從源節點刪除內容注意這?的遷移過程是同步的,在?標節點執?restore指令到原節點刪除key之間,原節點的主線程會處于阻塞狀態,直到key被成功如果遷移過程中突然出現?絡故障,整個slot的遷移只進?了?半。在遷移過程中,如果每個key的內容都很?,migrate指令執?會很快,它就并不會影響客戶端的正常訪問。如果key的內容很?,因為?先新舊兩個節點對應的槽位都存在部分key數據。客戶端先嘗試會向客戶端返回?個-ASKtargetNodeAddr的重定向指令??蛻魰纬芍囟ㄏ蜓h。asking指令的?標就是打開?標節點的選項,情況下?個ttl就能完成,?在遷移中得3個ttl才能搞定。RedisCluster可以為每個主節點設置若?個從節點,單主節點故障Redis也提供了?個參數cluster-require-full-coverage可為解決這種問題,RedisCluster提供了?種選項cluster-node-timeout,表示當某個節點持續timeout的時間失聯時,才可以認動會導致主從頻繁切換(數據的重新復制)。rsevtyt作為倍乘1可能下線(PFAIL-PossiblyFail與確定下線(Fail)因為RedisCluster是去中?化的,?個節點認為某個節點失聯了并Redis集群節點采?Gossip協議來?播??的狀態以及??對整個集群認知的改變。?如?個節點發現某個節點失聯了(PFail),它會如果?個節點收到了某個節點失聯的數量(PFailCount)已經達到了集群的?多數,就可以標記該節點為確定下線狀態(Fail),然后向整Cluster另外?個包,這個包是依賴redis-py包的。pippipinstallredis-py-redis-py-cluster>>>>>>fromredisclusterimport>>>#Requiresatleastonenodeforclusterdiscovery.Multiplenodesisrecommended.>>>startup_nodes=[{"host":"127.0.0.1","port":"7000"}]>>>rc=>>>rc.set("foo","bar")>>>Cluster是去中?化的,它有多個節點組成,構造StrictRedisCluster實例時,我們可以只??個節點地址,其它地址必須更換地址才可以繼續訪問Cluster。decode_responses數組轉換成unicodeCluster使?起來?常?便,?起來和普通的redis-py差別不?,Cluster不?持事務,Cluster的mget?法相?Redis要慢很多,被拆分成了多個get指令,Cluster的rename?法不再是原?如果Cluster中某個槽位正在遷移或者已經遷移完了,client如何能我們前?提到Cluster有兩個特殊的error指令,?個是asking第?個moved是?來糾正槽位的。如果我們將指令發送到了錯誤的地址隨同moved指令回復給客戶端通知客戶端去?標節點去訪問。第?個asking指令和moved不?樣,它是?來臨時糾正槽位的。回?個askingerror攜帶上?標節點的地址。客戶端收到這個askingerror后,就會去?標節點去嘗試??蛻舳瞬粫⑿虏畚恢卦?movedasking指令都是重試指令,客戶端會因為這兩個指令多2次呢?這種情況是存在的,?如?條指令被發送到錯誤的節點,這個節點會先給你?個moved錯誤告知你去另外?個節點重試。所以個槽位進?遷移操作,于是給客戶端回復了?個asking指令告知客戶端去?標節點去重試指令。所以這?客戶端重試了2次。會有?個循環,然后會設置?個最?重試次數,Java和Python都點關系表。那客戶端是如何得到通知的呢?這?要分2種情況:Connecti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油氣田開發過程中的能源管理與優化考核試卷
- 電子書版權交易市場的現狀與挑戰考核試卷
- 木材干燥與鋸材加工考核試卷
- 燈具回收與再利用考核試卷
- 生物技術在植物抗逆性育種中的應用考核試卷
- 燃氣具企業供應鏈協同與物流優化考核試卷
- 醫療數據要素市場交易電子審批管理
- 泌尿系統上尿路結石護理
- GPS基礎知識與主流應用方案
- 期中模擬卷(云南專用)-2024-2025學年八年級英語下學期核心素養素質調研模擬練習試題(考試版)A4
- 手術病人術中低體溫的預防與護理2
- 《天潤乳業公司償債能力存在的問題及對策9000字》
- 《臨床檢驗儀器與技術》考試復習題及答案
- DB34∕T 4278-2022 電梯使用安全標志與標識
- 《人力資源管理》全套教學課件
- 部編人教版語文小學六年級下冊第四單元主講教材解讀(集體備課)
- 民用無人機操控員執照(CAAC)考試復習重點題庫500題(含答案)
- 《AutoCAD 2023基礎與應用》 課件 項目八 綜合實訓
- 人工智能優化飼料配方
- JBT 14346-2023 建筑施工機械與設備 泥水平衡頂管機 (正式版)
- 四年級美術測國測復習題答案
評論
0/150
提交評論