真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

redis集群規(guī)范詳解-創(chuàng)新互聯(lián)

本文檔翻譯自 http://redis.io/topics/cluster-spec 。

目前累計(jì)服務(wù)客戶近1000家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶提供做網(wǎng)站、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

引言

這個(gè)文檔是正在開(kāi)發(fā)中的 Redis 集群功能的規(guī)范(specification)文檔, 文檔分為兩個(gè)部分:


第二部分介紹目前仍未實(shí)現(xiàn)的那些功能。


文檔各個(gè)部分的內(nèi)容可能會(huì)隨著集群功能的設(shè)計(jì)修改而發(fā)生改變, 其中, 未實(shí)現(xiàn)功能發(fā)生修改的幾率比已實(shí)現(xiàn)功能發(fā)生修改的幾率要高。


這個(gè)規(guī)范包含了編寫客戶端庫(kù)(client library)所需的全部知識(shí), 不過(guò)請(qǐng)注意, 這里列出的一部分細(xì)節(jié)可能會(huì)在未來(lái)發(fā)生變化。

什么是 Redis 集群?

Redis 集群是一個(gè)分布式(distributed)、容錯(cuò)(fault-tolerant)的 Redis 實(shí)現(xiàn), 集群可以使用的功能是普通單機(jī) Redis 所能使用的功能的一個(gè)子集(subset)。


Redis 集群中不存在中心(central)節(jié)點(diǎn)或者代理(proxy)節(jié)點(diǎn), 集群的其中一個(gè)主要設(shè)計(jì)目標(biāo)是達(dá)到線性可擴(kuò)展性(linear scalability)。


Redis 集群為了保證一致性(consistency)而犧牲了一部分容錯(cuò)性: 系統(tǒng)會(huì)在保證對(duì)網(wǎng)絡(luò)斷線(net split)和節(jié)點(diǎn)失效(node failure)具有有限(limited)抵抗力的前提下, 盡可能地保持?jǐn)?shù)據(jù)的一致性。


集群將節(jié)點(diǎn)失效視為網(wǎng)絡(luò)斷線的其中一種特殊情況。


集群的容錯(cuò)功能是通過(guò)使用主節(jié)點(diǎn)(master)和從節(jié)點(diǎn)(slave)兩種角色(role)的節(jié)點(diǎn)(node)來(lái)實(shí)現(xiàn)的:


不過(guò), 如果不需要保證“先寫入,后讀取”操作的一致性(read-after-write consistency), 那么可以使用從節(jié)點(diǎn)來(lái)執(zhí)行只讀查詢。


Redis 集群實(shí)現(xiàn)的功能子集


Redis 集群實(shí)現(xiàn)了單機(jī) Redis 中, 所有處理單個(gè)數(shù)據(jù)庫(kù)鍵的命令。


針對(duì)多個(gè)數(shù)據(jù)庫(kù)鍵的復(fù)雜計(jì)算操作, 比如集合的并集操作、合集操作沒(méi)有被實(shí)現(xiàn), 那些理論上需要使用多個(gè)節(jié)點(diǎn)的多個(gè)數(shù)據(jù)庫(kù)鍵才能完成的命令也沒(méi)有被實(shí)現(xiàn)。


在將來(lái), 用戶也許可以通過(guò) MIGRATE COPY 命令, 在集群的計(jì)算節(jié)點(diǎn)(computation node)中執(zhí)行針對(duì)多個(gè)數(shù)據(jù)庫(kù)鍵的只讀操作, 但集群本身不會(huì)去實(shí)現(xiàn)那些需要將多個(gè)數(shù)據(jù)庫(kù)鍵在多個(gè)節(jié)點(diǎn)中移來(lái)移去的復(fù)雜多鍵命令。


Redis 集群不像單機(jī) Redis 那樣支持多數(shù)據(jù)庫(kù)功能, 集群只使用默認(rèn)的 0 號(hào)數(shù)據(jù)庫(kù), 并且不能使用 SELECT 命令。


Redis 集群協(xié)議中的客戶端和服務(wù)器


Redis 集群中的節(jié)點(diǎn)有以下責(zé)任:


記錄集群的狀態(tài),包括鍵到正確節(jié)點(diǎn)的映射(mapping keys to right nodes)。
自動(dòng)發(fā)現(xiàn)其他節(jié)點(diǎn),識(shí)別工作不正常的節(jié)點(diǎn),并在有需要時(shí),在從節(jié)點(diǎn)中選舉出新的主節(jié)點(diǎn)。


為了執(zhí)行以上列出的任務(wù), 集群中的每個(gè)節(jié)點(diǎn)都與其他節(jié)點(diǎn)建立起了“集群連接(cluster bus)”, 該連接是一個(gè) TCP 連接, 使用二進(jìn)制協(xié)議進(jìn)行通訊。


節(jié)點(diǎn)之間使用 Gossip 協(xié)議 來(lái)進(jìn)行以下工作:


向其他節(jié)點(diǎn)發(fā)送 PING 數(shù)據(jù)包,以此來(lái)檢查目標(biāo)節(jié)點(diǎn)是否正常運(yùn)作。
在特定事件發(fā)生時(shí),發(fā)送集群信息。


除此之外, 集群連接還用于在集群中發(fā)布或訂閱信息。


因?yàn)榧汗?jié)點(diǎn)不能代理(proxy)命令請(qǐng)求, 所以客戶端應(yīng)該在節(jié)點(diǎn)返回 -MOVED 或者 -ASK 轉(zhuǎn)向(redirection)錯(cuò)誤時(shí), 自行將命令請(qǐng)求轉(zhuǎn)發(fā)至其他節(jié)點(diǎn)。


因?yàn)榭蛻舳丝梢宰杂傻叵蚣褐械娜魏我粋€(gè)節(jié)點(diǎn)發(fā)送命令請(qǐng)求, 并可以在有需要時(shí), 根據(jù)轉(zhuǎn)向錯(cuò)誤所提供的信息, 將命令轉(zhuǎn)發(fā)至正確的節(jié)點(diǎn), 所以在理論上來(lái)說(shuō), 客戶端是無(wú)須保存集群狀態(tài)信息的。


不過(guò), 如果客戶端可以將鍵和節(jié)點(diǎn)之間的映射信息保存起來(lái), 可以有效地減少可能出現(xiàn)的轉(zhuǎn)向次數(shù), 籍此提升命令執(zhí)行的效率。


鍵分布模型


Redis 集群的鍵空間被分割為 16384 個(gè)槽(slot), 集群的大節(jié)點(diǎn)數(shù)量也是 16384 個(gè)。


推薦的大節(jié)點(diǎn)數(shù)量為 1000 個(gè)左右。


每個(gè)主節(jié)點(diǎn)都負(fù)責(zé)處理 16384 個(gè)哈希槽的其中一部分。


當(dāng)我們說(shuō)一個(gè)集群處于“穩(wěn)定”(stable)狀態(tài)時(shí), 指的是集群沒(méi)有在執(zhí)行重配置(reconfiguration)操作, 每個(gè)哈希槽都只由一個(gè)節(jié)點(diǎn)進(jìn)行處理。


重配置指的是將某個(gè)/某些槽從一個(gè)節(jié)點(diǎn)移動(dòng)到另一個(gè)節(jié)點(diǎn)。


一個(gè)主節(jié)點(diǎn)可以有任意多個(gè)從節(jié)點(diǎn), 這些從節(jié)點(diǎn)用于在主節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)斷線或者節(jié)點(diǎn)失效時(shí), 對(duì)主節(jié)點(diǎn)進(jìn)行替換。


以下是負(fù)責(zé)將鍵映射到槽的算法:

HASH_SLOT = CRC16(key) mod 16384

本文標(biāo)題:redis集群規(guī)范詳解-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/iieii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部