redis 雜湊標籤的使用

2021-10-06 02:04:18 字數 760 閱讀 4820

當我們提交了一批命令,往redis中儲存一批鍵,那麼這些鍵一般會被對映到不同的slot,而不同的slot又可能在redis cluster中不同的節點上,這樣就和的預期有點不同,有沒有辦法將這批鍵對映到同乙個slot呢?

答案是可以。

雜湊標籤是確保兩個鍵都在同乙個雜湊槽裡的一種方式。將來也許會使用到雜湊標籤,例如為了在集群穩定的情況下(沒有在做碎片重組操作)允許某些多鍵操作。

為了實現雜湊標籤,雜湊槽是用另一種不同的方式計算的。基本來說,如果乙個鍵包含乙個 「」 這樣的模式,只有 之間的字串會被用來做雜湊以獲取雜湊槽。但是由於可能出現多個 ,計算的演算法如下:

然後不是直接計算鍵的雜湊,只有在第乙個 之間的內容會被用來計算雜湊值。

例子:上**:

不使用雜湊標籤的情況

上面**沒有使用hash標籤,必然資料會被分配到不同的hash槽中

結果:可以看到foo2,foo4,foo1被分配到3個節點中

使用雜湊標籤的情況:

加了test的hash標籤,結果:

可以看到hash標籤生效了

Redis中的雜湊型別如何使用?

雜湊型別的鍵值是一種字典結構,其中儲存了 字段 和 字段值的對映,但是字段值只能是字串,不支援其他資料型別 同時設定和讀取多個鍵值 使用 mget 讀取多個鍵值 使用 mset 設定多個鍵值 127.0.0.1 6379 mset num111 value111 num222 value222 nu...

Redis雜湊命令

1 hset key field value 設定雜湊的乙個字段值 hset person name wuhen 返回 integer 12 hget key field 得到雜湊乙個字段值 hget person name 返回 wuhen 3 hmset key field value fiel...

redis 雜湊函式

redis命令集 hmset keys 欄位名 值 欄位名 值 欄位名 值 hmset keys 欄位名 值 可以追 加欄位,可以修改字段,如果已經存在就會修改,不存在就新增字段 hdel keys 欄位名1 欄位名2 刪除字段,如果欄位不存在返回0,如果刪除多個字段,有乙個欄位不存在,那個所有欄位...