Redis分割區


分割區是將資料拆分為多個Redis範例的過程,因此每個範例只包含一部分鍵。

分割區的優點

  • 它允許更大的資料庫,使用更多計算機的記憶體總和。如果沒有分割區,則限制為單個計算機可以支援的記憶體量。
  • 它允許將計算能力擴充套件到多個核心和多個計算機,並將網路頻寬擴充套件到多個計算機和網路介面卡。

分割區的缺點

  • 通常不支援涉及多個鍵的操作。 例如,如果兩個集合儲存在對映到不同Redis範例的鍵中,則不能執行兩個集合之間的交集操作。
  • 不能使用涉及多個鍵的Redis事務。
  • 分割區粒度是關鍵,因此不可能使用單個巨大的鍵(如非常大的排序集合)來分割資料集。
  • 使用分割區時,資料處理更複雜。 例如,必須處理多個RDB/AOF檔案,並獲得資料的備份,您需要聚合來自多個範例和主機的永續性檔案。
  • 新增和刪除容量可能很複雜。 例如,Redis Cluster支援大多數透明的資料重新平衡,具有在執行時新增和刪除節點的能力。但是,其他系統(如用戶端分割區和代理)不支援此功能。但可以使用一種叫作Presharding的技術來處理這方面的問題。

分割區型別

Redis中有兩種型別的分割區。假設有四個Redis範例:R0R1R2R3以許多代表使用者的鍵,如user:1user:2,…等等。

範圍分割區

範圍分割區通過將物件的範圍對映到特定的Redis範例來實現。假設在上面範例中,從ID 0到ID 10000的使用者將進入範例R0,而從ID 10001到ID 20000的使用者將進入範例R1,以此類推。

雜湊分割區

在這種型別的分割區中,使用雜湊函式(例如,模函式)將鍵轉換成數位,然後將資料儲存在不同的Redis範例中。