Redis五大資料型別之 Hash(雜湊)

HuDu發表於2020-09-11

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 協議》,轉載必須註明作者和本文連結

相關文章