成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Redis請求路由的示例分析

這篇文章主要介紹redis請求路由的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、烏翠網(wǎng)絡(luò)推廣、成都微信小程序、烏翠網(wǎng)絡(luò)營銷、烏翠企業(yè)策劃、烏翠品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供烏翠建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:jinyejixie.com

請求重定向

既然是重定向我們就應(yīng)該了解,重定向指的是通過某種方法將原來的請求重新轉(zhuǎn)向其它的地方,那么Redis中的重定向指的到底是什么呢?我們知道Redis中的任何鍵都存儲(chǔ)到槽中,而通過上幾篇文章中我們知道在Redis集群環(huán)境中,槽被均勻的分布到多個(gè)主節(jié)點(diǎn)中了,所以在我們執(zhí)行任何Redis命令時(shí),和單節(jié)點(diǎn)有很大的不同,因?yàn)榧涵h(huán)境首先要計(jì)算鍵對應(yīng)的槽,再根據(jù)槽找出相應(yīng)的節(jié)點(diǎn)。如果計(jì)算之后,當(dāng)前鍵所在的槽是當(dāng)前節(jié)點(diǎn),那么就直接處理該命令,如果計(jì)算完后,不是當(dāng)前節(jié)點(diǎn),則Redis會(huì)顯示MOVED重定向錯(cuò)誤,也就是告訴客戶端該鍵所對應(yīng)槽的正確節(jié)點(diǎn)是多少。這個(gè)就叫做Redis的重定向。下面我們演示一下上述所說的內(nèi)容。


下面我們啟動(dòng)一個(gè)新節(jié)點(diǎn)6387。因?yàn)樵摴?jié)點(diǎn)沒有添加到集群中,所以我們執(zhí)行set命令時(shí),可以直接返回成功。

Redis請求路由的示例分析

下面我們在集群中執(zhí)行同樣的命令。

Redis請求路由的示例分析

我們看在集群環(huán)境中執(zhí)行同樣的命令時(shí),Redis提示了MOVED錯(cuò)誤。原因也就是上述介紹中的那樣。下面我們看一下MOVED重定向的執(zhí)行流程。也就是如下圖所示:

Redis請求路由的示例分析

在Redis中我們可以使用cluster keyslot {key}命令查看key所對應(yīng)的槽,然后在通過cluster nodes命令查看每個(gè)節(jié)點(diǎn)負(fù)責(zé)的槽,這樣我們就可以在執(zhí)行命令的時(shí)候,就可以知道在哪個(gè)節(jié)點(diǎn)上執(zhí)行了。我還還是已上圖的key為例。具體操作如下圖所示:

Redis請求路由的示例分析

我們用cluster keyslot {key}命令查看鍵所在的槽是12691。然后我們通過cluster nodes命令知道節(jié)點(diǎn)6382負(fù)責(zé)的槽為12288-16383。所以我們在執(zhí)行命令時(shí),只有在6382節(jié)點(diǎn)上執(zhí)行才能成功,在其它節(jié)點(diǎn)上執(zhí)行Redis都會(huì)報(bào)MOVED重定向錯(cuò)誤。下面我們將上述執(zhí)行失敗的命令在6382節(jié)點(diǎn)執(zhí)行。

Redis請求路由的示例分析

在Redis中我們使用redis-cli執(zhí)行命令時(shí),我們可以添加-c參數(shù),該參數(shù)會(huì)自動(dòng)重定向,簡化我們手動(dòng)重定向操作。

Redis請求路由的示例分析

鍵命令執(zhí)行主要分兩個(gè)步驟:計(jì)算槽,查找槽所在的節(jié)點(diǎn)。下面我們詳細(xì)介紹一下這兩方面的內(nèi)容。

計(jì)算槽

Redis根據(jù)鍵的使用CRC16函數(shù)計(jì)算鍵的散列值,然后在用散列值對16383取余,這樣使每個(gè)鍵都可以映射到0-16383槽范圍內(nèi)。

槽節(jié)點(diǎn)查找

Redis計(jì)算得到鍵所對應(yīng)的槽后,需要查找槽所在的節(jié)點(diǎn)。集群內(nèi)通過消息交換每個(gè)節(jié)點(diǎn)都會(huì)知道所有節(jié)點(diǎn)的槽的信息。根據(jù)MOVED重定向機(jī)制,客戶端可以隨機(jī)連接集群內(nèi)的任意Redis獲取鍵的所在節(jié)點(diǎn),這種客戶端叫做傀儡客戶端,它的優(yōu)點(diǎn)是代碼實(shí)現(xiàn)簡單,對客戶端協(xié)議影響比較小,只需要根據(jù)重定向信息再次發(fā)送請求即可。但這樣也有它的弊端,也就是每次執(zhí)行鍵命令前都要到Redis上進(jìn)行重定向才能找到要執(zhí)行命令的節(jié)點(diǎn)。這樣就額外的增加了IO開銷。正是因?yàn)檫@樣的弊端所以Redis提供了另一種技術(shù)實(shí)現(xiàn),也叫Smart(智能)客戶端,在下一篇中,我們在介紹Smart相關(guān)的內(nèi)容。

以上是“Redis請求路由的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁題目:Redis請求路由的示例分析
URL標(biāo)題:http://jinyejixie.com/article6/jjehig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、全網(wǎng)營銷推廣、網(wǎng)站策劃品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
玛沁县| 荆州市| 安国市| 剑河县| 行唐县| 丰宁| 易门县| 湟源县| 武胜县| 峡江县| 泗洪县| 洞头县| 武强县| 安顺市| 七台河市| 镇坪县| 自贡市| 白山市| 楚雄市| 皋兰县| 呼和浩特市| 治多县| 天津市| 盘锦市| 祁门县| 长岛县| 东明县| 佛冈县| 武汉市| 中方县| 桓台县| 安远县| 虎林市| 卓资县| 大石桥市| 乌拉特前旗| 崇仁县| 台安县| 玉田县| 盐边县| 镇赉县|