redis命令Map類型(五)

如果存儲一個對象 這個時候使用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是最常見的數據類型;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章