1. 程式人生 > 其它 >Redis從0到精通--Hash

Redis從0到精通--Hash

Hash(雜湊)

Map集合,key-map! 時候這個值是一個map集合! 本質和String型別沒有太大區別,還是一個簡單的 key-vlaue! set myhash field kuangshen

##########################################################################
127.0.0.1:6379> hset myhash field1 kuangshen # set一個具體 key-vlaue
(integer) 1
127.0.0.1:6379> hget myhash field1 # 獲取一個欄位值
"kuangshen"
127.0.0.1:6379> hmset myhash field1 hello field2 world # set多個 key-vlaue
OK
127.0.0.1:6379> hmget myhash field1 field2 # 獲取多個欄位值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall myhash # 獲取全部的資料,
1) "field1"
2) "hello"
3) "field2"
4) "world"
127.0.0.1:6379> hdel myhash field1 # 刪除hash指定key欄位!對應的value值也就消失了!
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
##########################################################################
hlen
127.0.0.1:6379> hmset myhash field1 hello field2 world
OK
127.0.0.1:6379> HGETALL myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379> hlen myhash # 獲取hash表的欄位數量!
(integer) 2
##########################################################################
127.0.0.1:6379> HEXISTS myhash field1 # 判斷hash中指定欄位是否存在!
(integer) 1
127.0.0.1:6379> HEXISTS myhash field3
(integer) 0
##########################################################################
# 只獲得所有field
# 只獲得所有value
127.0.0.1:6379> hkeys myhash # 只獲得所有field
1) "field2"
2) "field1"
127.0.0.1:6379> hvals myhash # 只獲得所有value
1) "world"
2) "hello"
##########################################################################
incr decr
127.0.0.1:6379> hset myhash field3 5 #指定增量!
(integer) 1
127.0.0.1:6379> HINCRBY myhash field3 1
(integer) 6
127.0.0.1:6379> HINCRBY myhash field3 -1
(integer) 5
127.0.0.1:6379> hsetnx myhash field4 hello # 如果不存在則可以設定
(integer) 1
127.0.0.1:6379> hsetnx myhash field4 world # 如果存在則不能設定
(integer) 0

hash變更的資料 user name age,尤其是是使用者資訊之類的,經常變動的資訊! hash 更適合於物件的 儲存,String更加適合字串儲存!