Map集合,key-Map集合,這時候這個值是map集合!本質和String型別沒有太大區別,還是一個簡單的key-value!
set myhash field hudu
127.0.0.1:6379[1]> HSET myhash field1 hudu # set一個具體的key-value
(integer) 1
127.0.0.1:6379[1]> HGET myhash field1
"hudu"
127.0.0.1:6379[1]> HMSET myhash field1 hello field2 world # set多個key-value
OK
127.0.0.1:6379[1]> HMGET myhash field1 field2 # 獲取多個欄位值
1) "hello"
2) "world"
127.0.0.1:6379[1]> HGETALL myhash # 獲取全部資料
1) "field1"
2) "hello"
3) "field2"
4) "world"
127.0.0.1:6379[1]> HDEL myhash field1 # 刪除hash指定的key欄位,對應的value值也就消失了
(integer) 1
127.0.0.1:6379[1]> HGETALL myhash
1) "field2"
2) "world"
127.0.0.1:6379[1]> hmset myhash field1 hello field2 world
OK
127.0.0.1:6379[1]> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379[1]> HLEN myhash # 獲得hash表的欄位數量
(integer) 2
127.0.0.1:6379[1]> HEXISTS myhash field1 # 判斷hash中指定的欄位是否存在
(integer) 1
127.0.0.1:6379[1]> HEXISTS myhash field3
(integer) 0
127.0.0.1:6379[1]> HKEYS myhash # 獲取所有的key
1) "field2"
2) "field1"
127.0.0.1:6379[1]> HVALS myhash # 獲取所有的value
1) "world"
2) "hello"
127.0.0.1:6379[1]> HSET myhash field3 5
(integer) 1
127.0.0.1:6379[1]> HINCRBY myhash field3 1 # 指定增量
(integer) 6
127.0.0.1:6379[1]> HGET myhash field3
"6"
127.0.0.1:6379[1]> HINCRBY myhash field -1
(integer) -1
127.0.0.1:6379[1]> HGET myhash field
"-1"
127.0.0.1:6379[1]> HSETNX myhash field4 hello # 不過不存在則可以設定
(integer) 1
127.0.0.1:6379[1]> HSETNX myhash field4 world
(integer) 0
hash變更的資料 user name age,尤其是使用者資訊之類的,經常變動的資訊。hash更適合於物件的儲存,String更適合字串儲存。
本作品採用《CC 協議》,轉載必須註明作者和本文連結