最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis數(shù)據(jù)傾斜處理方法

 更新時(shí)間:2022年12月20日 11:38:54   作者:wang0907  
我們?cè)谑褂肦edis分片集群時(shí),集群最好的狀態(tài)就是每個(gè)實(shí)例可以處理相同或相近比例的請(qǐng)求,但如果不是這樣,則會(huì)出現(xiàn)某些實(shí)例壓力特別大,而某些實(shí)例特別空閑的情況發(fā)生,本文就一起來(lái)看下這種情況是如何發(fā)生的以及如何處理

寫在前面

我們?cè)谑褂肦edis分片集群時(shí),集群最好的狀態(tài)就是每個(gè)實(shí)例可以處理相同或相近比例的請(qǐng)求,但如果不是這樣,則會(huì)出現(xiàn)某些實(shí)例壓力特別大,而某些實(shí)例特別空閑的情況發(fā)生,本文就一起來(lái)看下這種情況是如何發(fā)生的以及如何處理。

1:什么是數(shù)據(jù)傾斜

數(shù)據(jù)傾斜分為兩種,第一種是數(shù)據(jù)量?jī)A斜,第二種是數(shù)據(jù)訪問(wèn)傾斜,定義如下:

  • 數(shù)據(jù)量?jī)A斜:數(shù)據(jù)分布的不均勻,導(dǎo)致某些實(shí)例數(shù)據(jù)特別多,進(jìn)而導(dǎo)致處理的請(qǐng)求量大
  • 數(shù)據(jù)訪問(wèn)傾斜:數(shù)據(jù)分布均勻,但是某些實(shí)例存在熱點(diǎn)數(shù)據(jù),進(jìn)而導(dǎo)致處理的請(qǐng)求量大

可以看到不管是數(shù)據(jù)量?jī)A斜,還是數(shù)據(jù)訪問(wèn)傾斜,最終導(dǎo)致的結(jié)果都是發(fā)生傾斜的實(shí)例處理了更多的數(shù)據(jù)請(qǐng)求,壓力增大。

2:數(shù)據(jù)量?jī)A斜

在這里插入圖片描述

數(shù)據(jù)量?jī)A斜最常見的原因就是在手動(dòng)劃分slot時(shí),分配不均勻,除此之外,還有big key,hash tag,分別來(lái)看下。

2.1:slot分配不均勻

slot分配不均勻一般是由于手動(dòng)分配造成,或者是因?yàn)槟硞€(gè)實(shí)例節(jié)點(diǎn)配置較高,為了更加充分的利用其計(jì)算機(jī)資源,有意的給其分配更多的slot,但是這個(gè)多出的量其實(shí)是不好預(yù)估的,所以對(duì)于因?yàn)橛?jì)算機(jī)性能差異有意分配的造成的slot不均勻還是要盡量避免,即保證所有的實(shí)例節(jié)點(diǎn)都具有相同的配置,然后將slot進(jìn)行均勻分配。如果是已經(jīng)發(fā)生了slot分配不均勻,我們可以通過(guò)遷移slot的方式來(lái)處理,首先通過(guò)cluster slots命令查看當(dāng)前slot的分配情況:

在這里插入圖片描述

上圖slot0~4095分配到了實(shí)例192.168.10.3:6379,slot12288~16383分配到了實(shí)例192.168.10.5:6379。如下是一個(gè)slot遷移的例子。

假設(shè)我們要把 Slot 300 從源實(shí)例(ID 為 3)遷移到目標(biāo)實(shí)例(ID 為 5),那要怎么做呢?

第1步,我們先在目標(biāo)實(shí)例5上執(zhí)行下面的命令,將Slot 300的源實(shí)例設(shè)置為實(shí)例 3,表示要從實(shí)例 3 上遷入 Slot 300。

在這里插入圖片描述

第2步,在源實(shí)例 3 上,我們把 Slot 300 的目標(biāo)實(shí)例設(shè)置為 5,這表示,Slot 300 要遷出到實(shí)例 5 上,如下所示:

在這里插入圖片描述

第3步,從 Slot 300 中獲取 100 個(gè) key。因?yàn)?Slot 中的 key 數(shù)量可能很多,所以我們需要在客戶端上多次執(zhí)行下面的這條命令,分批次獲得并遷移 key。

在這里插入圖片描述

第4步,我們把剛才獲取的 100 個(gè) key 中的 key1 遷移到目標(biāo)實(shí)例 5 上(IP 為 192.168.10.5),同時(shí)把要遷入的數(shù)據(jù)庫(kù)設(shè)置為 0 號(hào)數(shù)據(jù)庫(kù),把遷移的超時(shí)時(shí)間設(shè)置為 timeout。我們重復(fù)執(zhí)行 MIGRATE 命令,把 100 個(gè) key 都遷移完。

在這里插入圖片描述

最后,我們重復(fù)執(zhí)行第 3 和第 4 步,直到 Slot 中的所有 key 都遷移完成。

從Redis3.0.6開始,你也可以使用KEYS選項(xiàng),一次遷移多個(gè)key(key1、2、3),這樣可以提升遷移效率。

在這里插入圖片描述

2.2:big key

bigkey,主要包括string的值特別大,和集合類型的元素特別多兩種情況,對(duì)于string,我們需要在業(yè)務(wù)上處理,分散到多個(gè)key存儲(chǔ),然后在業(yè)務(wù)上多次獲取,并進(jìn)行合并,比如如下劃分:

key:
    names
劃分為
key:
    name:1_1000 ... name:100001_101001 

其實(shí)這里是用到了分片的思想,對(duì)于集合的處理方式和string也是類似的,比如有一個(gè)包含100萬(wàn)個(gè)元素的hash集合user:info,分片存儲(chǔ)后如下:

key: 
    user:info
key: 
    user:info:1_100000,user:info:100001_20000,...,user:info:900001_1000000

對(duì)于bigkey我們還是要在業(yè)務(wù)上盡量避免,因?yàn)閎igkey的副作用不僅僅如此,還有如數(shù)據(jù)同步慢,數(shù)據(jù)恢復(fù)慢,刪除慢等。

2.3:hash tag

我們正常設(shè)置key,計(jì)算其slot值的方式是crc16(key)%16384,但是如果是使用了{},比如keypart1:{keypart2},則計(jì)算的邏輯就變成了crc16(keypart2)%16384,一般用在希望某幾類key分布到同一個(gè)實(shí)例,進(jìn)而可以方便的進(jìn)行某些操作的場(chǎng)景,如事務(wù),簡(jiǎn)單的計(jì)算等,但是一般帶來(lái)的的負(fù)面影響要比收益大的多,比如造成這里分析的數(shù)據(jù)傾斜問(wèn)題,數(shù)據(jù)傾斜影響的是整個(gè)Redis實(shí)例,影響更大,所以在實(shí)踐中要盡量避免使用hash tag。

3:數(shù)據(jù)訪問(wèn)傾斜

在這里插入圖片描述

數(shù)據(jù)訪問(wèn)傾斜出現(xiàn)的場(chǎng)景一般就是熱點(diǎn)數(shù)據(jù),比如首頁(yè)的新聞,某明星出軌離婚等爆點(diǎn)新聞,對(duì)于這類問(wèn)題一般有如下的解決方法:

1:拷貝幾份數(shù)據(jù),以分散到不同的實(shí)例
    比如news:1,可以虛擬出幾份數(shù)據(jù),如news:1:A,news:1:B,...news:1:Z,客戶端訪問(wèn)時(shí)隨機(jī)的增加A~Z的后綴,分散壓力,這種方法可以用于只讀的熱點(diǎn)數(shù)據(jù)
2:增加機(jī)器配置
    這種方法是針對(duì)讀寫數(shù)據(jù),因?yàn)槿绻前凑辗桨?,數(shù)據(jù)的一致性將會(huì)帶來(lái)額外的性能開銷,以及更多潛在的bug。

到此這篇關(guān)于redis之?dāng)?shù)據(jù)傾斜如何處理的文章就介紹到這了,更多相關(guān)redis數(shù)據(jù)傾斜內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis鏈表底層實(shí)現(xiàn)及生產(chǎn)實(shí)戰(zhàn)

    Redis鏈表底層實(shí)現(xiàn)及生產(chǎn)實(shí)戰(zhàn)

    Redis 的 List 是一個(gè)雙向鏈表,鏈表中的每個(gè)節(jié)點(diǎn)都包含了一個(gè)字符串。是redis中最常用的數(shù)據(jù)結(jié)構(gòu)之一,本文主要介紹了Redis鏈表底層實(shí)現(xiàn)及生產(chǎn)實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • redis熱key問(wèn)題怎樣解決

    redis熱key問(wèn)題怎樣解決

    這篇文章主要介紹了redis熱key問(wèn)題怎樣解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Redis增減庫(kù)存避坑的實(shí)現(xiàn)

    Redis增減庫(kù)存避坑的實(shí)現(xiàn)

    在電商平臺(tái)或者倉(cāng)庫(kù)管理系統(tǒng)中,庫(kù)存的管理是非常重要的一項(xiàng)任務(wù),本文主要介紹了Redis增減庫(kù)存避坑的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表

    詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表

    這篇文章主要介紹了Redis數(shù)據(jù)結(jié)構(gòu)中的跳躍表的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • redis的hGetAll函數(shù)的性能問(wèn)題(記Redis那坑人的HGETALL)

    redis的hGetAll函數(shù)的性能問(wèn)題(記Redis那坑人的HGETALL)

    這篇文章主要介紹了redis的hGetAll函數(shù)的性能問(wèn)題,需要的朋友可以參考下
    2016-02-02
  • 在Ubuntu?14.04系統(tǒng)上備份和恢復(fù)Redis數(shù)據(jù)詳細(xì)步驟

    在Ubuntu?14.04系統(tǒng)上備份和恢復(fù)Redis數(shù)據(jù)詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于在Ubuntu?14.04系統(tǒng)上備份和恢復(fù)Redis數(shù)據(jù)的詳細(xì)步驟,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Redis具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-04-04
  • redis基本安裝判斷、啟動(dòng)使用方法示例

    redis基本安裝判斷、啟動(dòng)使用方法示例

    這篇文章主要介紹了redis基本安裝判斷、啟動(dòng)使用方法,結(jié)合實(shí)例形式分析了Redis針對(duì)是否安裝的判斷、啟動(dòng)等使用方法,需要的朋友可以參考下
    2020-02-02
  • 高效異步redis客戶端aredis優(yōu)劣勢(shì)原理解析

    高效異步redis客戶端aredis優(yōu)劣勢(shì)原理解析

    這篇文章主要介紹了高效異步redis客戶端aredis優(yōu)劣勢(shì)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • redis三種高可用方式部署的實(shí)現(xiàn)

    redis三種高可用方式部署的實(shí)現(xiàn)

    這篇文章主要介紹了redis三種高可用方式部署的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 詳解Redis高效恢復(fù)策略內(nèi)存快照與AOF

    詳解Redis高效恢復(fù)策略內(nèi)存快照與AOF

    這篇文章主要為大家介紹了Redis高效恢復(fù)策略內(nèi)存快照與AOF及對(duì)比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評(píng)論

中阳县| 台湾省| 顺义区| 平谷区| 游戏| 张家口市| 衢州市| 镇平县| 安溪县| 调兵山市| 昌图县| 岫岩| 陈巴尔虎旗| 额尔古纳市| 鄢陵县| 山东省| 阿拉善盟| 高清| 名山县| 丹江口市| 石狮市| 呼图壁县| 赤城县| 外汇| 阿图什市| 探索| 武鸣县| 辽中县| 山阳县| 竹山县| 哈巴河县| 玉林市| 新宾| 湖南省| 涞水县| 建始县| 延安市| 竹北市| 集贤县| 全州县| 岳池县|