今天講redis中的hash數據類型,其實這種類型是Map的集合,相當於key-map。使用的java的同學應該都使用這樣子的數量類型 Map<String,Map<String,Value>>,hash類型就是這種結構。
具體的存儲的數據格式如下:
[key] [field] [value]mykey1 name zhangsan
hash的命令操作和String類型非常像,只不過hash的操作命令都是以h開頭的
下面以一個用戶博客的每天訪問量、粉絲數、關注量為例
設置和獲取值
Hset [key] [field] [value]:設置值
Hget [key] [field] :獲取值
Hmset [key] [field] [value] [field2] [value2] :批量設置值
Hmget [key] [field1] [field2] :批量獲取值
Hgetall [key] :獲取所有屬性
本機:0>hset user1 view 1 34;1&34;1&獲取用戶的訪問量&34;本機:0>hget user1 fans&34;本機:0>hmset user1 view 10 fans 15 34;OK&批量獲取用信息 1) &34; 2) &34;本機:0>hgetall user1 34;view&34;10&34;fans&34;15&34;view&34;10&34;fans&34;15&刪除user1中的訪問量view屬性值&34;本機:0>hgetall user1 1) &34; 2) &34;
獲取長度
Hlen [key]:獲取hash中屬性數量
本機:0>hgetall user1 1) &34; 2) &34; 3) &34; 4) &34;本機:0>hlen user1 34;2&34;fans&34;15&34;wiew&34;13&34;1&34;0&34;fans&34;wiew&34;15&34;13&34;user1&34;fans&34;22&34;wiew&34;13&設置user1的粉絲數增加6個&34;本機:0>hsetnx user1 test1 hello 34;1&34;fans&34;28&34;wiew&34;13&34;test1&34;hello&34;0"
總結
Hash類型數據適合存儲對象,例如用戶的信息,用上面的例子。相比較而言,將一個對象類型存儲在Hash類型裡要比存儲在String類型類,佔用更小的內存空間,並方便存取整個對象。用戶表user,id為1的粉絲數為1000個,則可以這樣子設計,user:1 fans 1000
即hset user:1 fans 1000
------------------------------------------------END-----------------------------------------------------------------
你的一個讚一個關注是我創作的動力,是我持續輸出的能量源泉,老鐵關注一波吧!