如果存儲一個對象 這個時候使用String 類型就不適合了,如果在String中修改一個數據的話,這就感到煩瑣。
hash 散列類型 ,他提供了字段與字段值的映射,當時字段值只能是字符串類型
命令:
1>賦值
HSET命令不區分插入和更新操作,當執行插入操作時HSET命令返回1,當執行更新操作時返回0。
一次只能設置一個字段值
語法:HSET key field value
比如:
127.0.0.1:6379> hset user username zhangsan
(integer) 1
一次可以設置多個字段值
語法:HMSET key field value [field value …]
127.0.0.1:6379> hmset user age 20 username lisi
OK
語法:HSETNX key field value
127.0.0.1:6379> hsetnx user age 30 如果user中沒有age字段則設置age值爲30,否則不做任何操作
(integer) 0
2>取值
一次只能獲取一個字段值
語法:HGET key field
127.0.0.1:6379> hget user username
"zhangsan“
一次可以獲取多個字段值
語法:HMGET key field [field …]
127.0.0.1:6379> hmget user age username
1) "20"
2) "lisi"
獲取所有字段值
語法:HGETALL key
127.0.0.1:6379> hgetall user
1) "age"
2) "20"
3) "username"
4) "lisi"
3>刪除字段
可以刪除一個或多個字段,返回值是被刪除的字段個數
語法:HDEL key field [field …]
127.0.0.1:6379> hdel user age
(integer) 1
127.0.0.1:6379> hdel user age name
(integer) 0
127.0.0.1:6379> hdel user age username
(integer) 1
增加數字
語法: HINCRBY key field increment
127.0.0.1:6379> hincrby user age 2 將用戶的年齡加2
(integer) 22
127.0.0.1:6379> hget user age 獲取用戶的年齡
"22“
注: 這個沒有遞減數字這一說;
4>其他
判斷字段是否存在
語法:HEXISTS key field
127.0.0.1:6379> hexists user age 查看user中是否有age字段
(integer) 1
127.0.0.1:6379> hexists user name 查看user中是否有name字段
(integer) 0
只獲取字段名或字段值
語法:
HKEYS key
HVALS key
127.0.0.1:6379> hmset user age 20 name lisi
OK
127.0.0.1:6379> hkeys user
1) "age"
2) "name"
127.0.0.1:6379> hvals user
1) "20"
2) "lisi"
獲取字段數量
語法:HLEN key
127.0.0.1:6379> hlen user
(integer) 2
eg;
注:map是最常見的數據類型;