Redis 分區(qū)

Redis 分區(qū)

分區(qū)是分割數(shù)據(jù)到多個Redis實例的處理過程,因此每個實例只保存key的一個子集。

分區(qū)的優(yōu)勢

通過利用多臺計算機(jī)內(nèi)存的和值,允許我們構(gòu)造更大的數(shù)據(jù)庫。

通過多核和多臺計算機(jī),允許我們擴(kuò)展計算能力;通過多臺計算機(jī)和網(wǎng)絡(luò)適配器,允許我們擴(kuò)展網(wǎng)絡(luò)帶寬。

分區(qū)的不足

redis的一些特性在分區(qū)方面表現(xiàn)的不是很好:

涉及多個key的操作通常是不被支持的。舉例來說,當(dāng)兩個set映射到不同的redis實例上時,你就不能對這兩個set執(zhí)行交集操作。

涉及多個key的redis事務(wù)不能使用。

當(dāng)使用分區(qū)時,數(shù)據(jù)處理較為復(fù)雜,比如你需要處理多個rdb/aof文件,并且從多個實例和主機(jī)備份持久化文件。

增加或刪除容量也比較復(fù)雜。redis集群大多數(shù)支持在運行時增加、刪除節(jié)點的透明數(shù)據(jù)平衡的能力,但是類似于客戶端分區(qū)、代理等其他系統(tǒng)則不支持這項特性。然而,一種叫做presharding的技術(shù)對此是有幫助的。


分區(qū)類型

Redis 有兩種類型分區(qū)。 假設(shè)有4個Redis實例 R0,R1,R2,R3,和類似user:1,user:2這樣的表示用戶的多個key,對既定的key有多種不同方式來選擇這個key存放在哪個實例中。也就是說,有不同的系統(tǒng)來映射某個key到某個Redis服務(wù)。

范圍分區(qū)

最簡單的分區(qū)方式是按范圍分區(qū),就是映射一定范圍的對象到特定的Redis實例。

比如,ID從0到10000的用戶會保存到實例R0,ID從10001到 20000的用戶會保存到R1,以此類推。

這種方式是可行的,并且在實際中使用,不足就是要有一個區(qū)間范圍到實例的映射表。這個表要被管理,同時還需要各 種對象的映射表,通常對Redis來說并非是好的方法。

哈希分區(qū)

另外一種分區(qū)方法是hash分區(qū)。這對任何key都適用,也無需是object_name:這種形式,像下面描述的一樣簡單:

用一個hash函數(shù)將key轉(zhuǎn)換為一個數(shù)字,比如使用crc32 hash函數(shù)。對key foobar執(zhí)行crc32(foobar)會輸出類似93024922的整數(shù)。

對這個整數(shù)取模,將其轉(zhuǎn)化為0-3之間的數(shù)字,就可以將這個整數(shù)映射到4個Redis實例中的一個了。93024922 % 4 = 2,就是說key foobar應(yīng)該被存到R2實例中。注意:取模操作是取除的余數(shù),通常在多種編程語言中用%操作符實現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ****正文****Redis Partitioning即Redis分區(qū),簡單的說就是將數(shù)據(jù)分布到不同的redis...
    景岳閱讀 64,064評論 2 3
  • 分區(qū)是把數(shù)據(jù)分割到多個Redis實例的處理過程,每個redis實例只是保存你所有key的一個子集。 分區(qū)的優(yōu)勢 在...
    limx閱讀 1,080評論 1 0
  • Redis 分區(qū) 分區(qū)是分割數(shù)據(jù)到多個Redis實例的處理過程,因此每個實例只保存key的一個子集。 分區(qū)的優(yōu)勢 ...
    陳小陌丿閱讀 5,614評論 0 4
  • 分區(qū)在我的理解就是原本一個Redis處理所有的get/set請求,現(xiàn)在用多個Redis實例來分擔(dān)get/set 請...
    Cajesse佳澤閱讀 620評論 1 2
  • 概念 Redis是一個開源的使用C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value內(nèi)存數(shù)據(jù)庫,...
    jiangmo閱讀 710評論 0 3

友情鏈接更多精彩內(nèi)容