Redis入門之雜湊 Hash 型別

2021-08-29 02:25:29 字數 2354 閱讀 8488

redis提供了雜湊型別,雜湊的值是乙個field和value的對映表,而獲取雜湊的鍵與上一節中字串型別中的鍵一樣.

如下圖,描述了redis中雜湊型別:

鍵名為: car:2

欄位名分別有:color、name、price

對應的欄位名為:白色、奧迪、90萬

通過上圖可以看出:欄位和字段值構成了乙個對映表,通過鍵可以對這個對映表進行一些操作.下面我們來看一下redis中關於雜湊的命令:

1. 賦值與取值

hset key field value

hget key field

hmset key field value [field value ...]

hmget key field [field ...]

hgetall key

hset命令的作用是給字段賦值,hget命令是用來獲得欄位的值.用法如下:

hset命令不區分是插入操作還是更新操作,更新資料時不需要判斷字段是否存在,若字段不存在,會自動建立該欄位,並將該字段的值設定成為要設定的值,當欄位存在時,則更新字段值.當不存在時,hset還會自動建立它.

hmset命令可以同時設定多個欄位的值,

hmget命令可以同時獲得多個欄位的值,例如:

2. 判斷字段是否存在

hexists key field
hexists命令用來判斷乙個字段是否存在, 如果存在則範湖1,否則返回0(如果鍵不存在也會返回0),用法如下:

3. 當字段不存在時賦值

hset key field value
hsetnx命令與hset命令類似,區別在於,如果字段已經存在,hsetnx命令將不會執行任何操作.例如:

可以看到,第一次建立欄位是可以正常執行的,返回值為1,當第二次想要設定同樣的字段的時候的時候,由於name欄位已經存在,所以不會執行.

4. 增加數字

hincrby key field value
雜湊中沒有hincr命令,但是有hincrby命令,通過hincrby key field 1來實現.例如:

可以看出,當增加的不是整數時,會報錯,當增加的字段不存在時,hincrby會自動建立該欄位,並初始化為0,然後加上要增加的數.命令成功執行後返回1,例如:

5. 刪除字段

hdel key field [field ...]
hdel命令可以刪除乙個或多個字段,返回值是被刪除的字段的個數,例如:

6. 只獲取欄位名或字段值

有時僅僅需要獲取鍵中的所有欄位的名字而不是欄位名,有時是獲取欄位中所有的字段值

hkeys key

hvals key

用法如下:

7. 獲取字段數量

獲取鍵對應的值中含有的字段數量.

redis之雜湊型別(hash)

redis的雜湊值是字串欄位和字串值之間的對映,所以他們是表示物件的完美資料型別。在redis中的雜湊值,可儲存超過400十億鍵值對。假如我有乙個表示 職工 的物件,他可以有如下屬性 看看是如何將物件儲存到redis中的 hmset zhibin name binbin age 26 positio...

Redis命令 雜湊 Hash

redis hash 是乙個string型別的field和value的對映表,hash特別適合用於儲存物件。redis 中每個 hash 可以儲存 232 1 鍵值對 40多億 例項 127.0.0.1 6379 hmset mykey name redis tutorial description...

Redis 雜湊 Hash 命令

redis hash 是乙個 string 型別的 field 字段 和 value 值 的對映表,hash 特別適合用於儲存物件。描述 命令hset 將雜湊表key中的字段field的值設為value hgetall 獲取在雜湊表中指定key的所有欄位和值 hget 獲取儲存在雜湊表中指定欄位的值...