Redis入門(二):五大類型 2:散列類型

Redis 是採用字典結構以鍵值對的形式存儲數據的,而散列類型(hash)的鍵值也是一種字典結構,存儲了字段和字段值的映射,但字段值只能是字符串,不支持其餘數據類型。redis

PS:除了散列類型,Redis的其餘數據類型一樣不支持數據類型嵌套。好比集合類型的每一個元素都只能是字符串,不能是另外一個集合或散列表等。code

散列類型適合存儲對象:使用對象類別和ID構成鍵名,使用字段表示對象的屬性,而字段值則存儲屬性值。
根據下面的命令,很容易理解。對象

1.賦值與取值rem

HSET key field value
HGET key field

HMSET key field value [field value ...]
HMGET key field [field ...]

HGATALL key

HSET 命令用來給字段賦值,HGET 命令用來得到字段的值。字符串

redis> HSET car price 500
(integer) 1
redis> HSET car name BMW
(integer) 1
redis> HGET car name
"BMW"
PS:HSET 命令不區分插入和更新操做,當執行插入操做(即以前字段不存在)HSET 命令會返回 1,當執行更新操做(即之
前字段已經存在)HSET 命令會返回 0。更進一步,當鍵自己不存在時,HSET命令還會自動創建它。

當須要同時設置多個字段的值時,可使用 HMSET 命令。hash

HMSET key field1 value1 field2 value2

相應的,HMSET 命令能夠同時得到多個字段的值:model

redis> HMSET car price name
1) "500"
2) "BMW"

若是想要獲取鍵中全部字段和字段值殊不知道鍵中有哪些字段時,應該使用 HGETALL 命令。數據類型

redis> HGETALL car
1) "price"
2) "500"
3) "name"
4) "BMW"

2.判斷字段是否存在數據

HEXISTS key field

HEXISTS 命令用來判斷一個字段是否存在,存在返回 1,反則返回 0(鍵不存在也會返回 0)集合

redis> HEXISTS car model
(integer) 0
redis> HSET car model C200
(integer) 1
redis> HEXISTS car model
(integer) 1

3.當字段不存在時賦值

HSETTNX key field value

若是字段已經存在,HSETTNX 命令將不執行任何操做。HSETTNX 命令是原子操做,沒必要擔憂競態條件。

4.增長數字

HINCRBY key field increment

使字段值增長指定的整數。

redis> HINCRBY person score 60
(integer) 60

5.刪除字段

HDEL key field [field ...]

HDEL 命令能夠刪除一個或者多個字段,返回值是被刪除的字段的個數。

redis> HDEL car price
(integer) 1
redis> HDEL car price
(integer) 0

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

HKEYS key
HVALS key

HKEYS 命令用來獲取鍵中全部的字段名稱

redis> HKEYS car
1) "name"
2) "model"

HVALS 命令用來得到鍵中全部字段值。

redis> HVALS car
1) "BMW"
2) "C200"

7.得到字段數量

HLEN key

redis>  HLEN car
(integer) 2
相關文章
相關標籤/搜索