日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Redis分區(qū)技術(shù)詳解
Redis 分區(qū)技術(shù)(又稱 Redis Partition)指的是將 Redis 中的數(shù)據(jù)進行拆分,然后把拆分后的數(shù)據(jù)分散到多個不同的 Redis 實例(即服務器)中,每個實例僅存儲數(shù)據(jù)集的某一部分(一個子集),我們把這個過程稱之為 Redis 分區(qū)操作。

創(chuàng)新互聯(lián) - 四川電信機房托管,四川服務器租用,成都服務器租用,四川網(wǎng)通托管,綿陽服務器托管,德陽服務器托管,遂寧服務器托管,綿陽服務器托管,四川云主機,成都云主機,西南云主機,四川電信機房托管,西南服務器托管,四川/成都大帶寬,機柜大帶寬,四川老牌IDC服務商

Redis 實例指的是一臺安裝了 Redis 服務器的計算機。

分區(qū)(Partition)不僅是 Redis 中的概念,幾乎所有數(shù)據(jù)庫管理系統(tǒng)都會涉及到“分區(qū)”的應用。因此本節(jié)重點介紹有關(guān)分區(qū)的知識。

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

Redis 分區(qū)技術(shù)有兩個方面的優(yōu)勢,一是提升服務器的性能,二是提高了服務器的數(shù)據(jù)存儲能力。

一方面,單臺機器的 Redis 服務器,其網(wǎng)絡 IO 能力和計算資源都是非常有限的,但是如果我們將請求分散到多臺機器上,那么就能充分利用多臺計算機的算力和網(wǎng)絡帶寬,從而整體上提升 Redis 服務器的性能。另一方面,隨著存儲數(shù)據(jù)的不斷增加,單臺機器的存儲容量會達到極限,若將數(shù)據(jù)分散存儲到多臺 Redis 服務器上,其存儲能力也將得到大幅度提升。

注意,Redis 分區(qū)技術(shù)可以利用多臺計算機的內(nèi)存總和,從而創(chuàng)建出大型的 Redis 數(shù)據(jù)庫。

分區(qū)常用方法

分區(qū)技術(shù)有兩種常用方法,分別是“范圍分區(qū)”和“哈希分區(qū)”。

1) 范圍分區(qū)

范圍分區(qū)是最簡單、最有效的分區(qū)方法之一。所謂范圍分區(qū)指的是將特定范圍的 key 映射到指定的 Redis 實例上。key 的命名格式如下:

object_name:

比如:user:1、user:2 ...用來表示不同 id  的用戶。下面通過一個示例了解范圍分區(qū)的具體流程:

假設(shè)現(xiàn)在共有 3000 個用戶,您可以把 id 從 0 到 1000 的用戶映射到實例 R0 上,id 從 1001 到 2000 的用戶映射到實例 R1 上,以此類推,將 id 從 2001 到 3000 的用戶映射到實例 R2 上。

范圍分區(qū)不僅簡單,而且實用,適合許多的特定場景。但當存儲的 key 不能按照范圍劃分時,那么范圍分區(qū)就不再適用了,比如 key 是一組 uuid(通用唯一識別碼)。如下所示:

9eb4d81b-31ec-4c69-a721-c7e1771413dd

此時范圍分區(qū)就不再適用,就要用到另外一種分區(qū)方式——哈希分區(qū)。

2) 哈希分區(qū)

哈希分區(qū)與范圍分區(qū)相比,它最顯著的優(yōu)勢是適合任何形式的 key。哈希分區(qū)方法并不復雜比,id 表達式如下所示:

id=hash(key)%N

這里的 id 指的是 Redis 實例的編號,而 N 表示共有多少個 Redis 實例。

首先調(diào)用一個 crc32() 哈希函數(shù),它可以將 key 轉(zhuǎn)換為一個整數(shù)。 如下所示:

crc32(key)

假如轉(zhuǎn)換后的整數(shù)是 93024922,此時共有 4 個 Redis 實例,對整數(shù)與實例的數(shù)量進行取模運算,就會得到一個 0 到 3 之間的整數(shù),如下所示:

93024922 % 4 = 2

上述計算結(jié)果為 2 ,我們就把這個 key 映射到 R2 實例中,如果為 3 就映射到 R3實例中。以此類推,通過這種方式可以將所有的 key 分散到 4 個不同的 Redis 實例中。

分區(qū)技術(shù)的不足

雖然 Redis 分區(qū)技術(shù)有諸多優(yōu)勢,但是它也存在一些不足之處。下面做簡單介紹:

  • 涉及操作多個 key 時,通常不被支持。這是由于批量操作的 key 會被映射到不同的 Redis 實例中,此時無法實現(xiàn)在一個實例中操作分散開的 key;
  • 不支持包含多個 key 的 Redis 事務;
  • 當使用分區(qū)的時候,數(shù)據(jù)的處理變的非常復雜,比如需要處理多個 .rdb 或者 .aof 存儲文件,并且還需要從多個 Redis 實例中備份數(shù)據(jù);
  • 添加、刪除實例變的復雜,比如 Redis 集群支持在運行時增加或減少實例,分區(qū)技術(shù)不支持這種功能。

分區(qū)技術(shù)問題解決

我們知道,應用 Redis 分區(qū)技術(shù)時存在一些不足之處,比如在增加、刪除 Redis 實例時會非常麻煩,但這種情況在實際應用中經(jīng)常遇到。比如今天需要刪除 10 臺 Redis 實例,明天又要增加 20 臺實例。那么對于這種問題,有沒有一種較好的解決辦法呢?下面進行簡單介紹:

其實 Redis 是一種很輕量級的服務(每個實例僅占用 1 MB),針對它的這種特性,我們提出以下解決辦法:

在一臺機器上開啟多個 Redis 實例,您可以從中選擇一定數(shù)量的實例作為 Redis 工作集群。當集群中某一臺機器存儲不足時,您可以將一部分 Redis 實例移動到另外一臺機器上,依次類推。這樣就保證了 Redis 的實例總數(shù)不變,又達到了增加機器的目的。


標題名稱:Redis分區(qū)技術(shù)詳解
URL標題:http://m.5511xx.com/article/cdghdeh.html