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 獲取儲存在雜湊表中指定欄位的值...