Redis 入門之 基本數據類型hash

散列類型(hash)

hash 字典結構,存儲了字段和字段值的映射,但字典值只能是字符串,不支持其他數據類型。

HSET key field value 和 HGET key field

HSET 設置散列,HGET獲取hash值

127.0.0.1:6379[2]> hset aa name zhangsan 
(integer) 1
127.0.0.1:6379[2]> hget aa name
"zhangsan"

這個有點像設置對象,aa 是一個對象,name 是對象的一個屬性,aa 的name爲 zhangsan

HMSET key field value [field value] 和 HMGET key field field

127.0.0.1:6379[2]> HMSET aa age 20 sex 1 
OK
127.0.0.1:6379[2]> hget aa name age sex
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379[2]> hmget aa name age sex
1) "zhangsan"
2) "20"
3) "1"

由上面的測試代碼可以看出我們設置了一個對象aa, name、age 和sex
HSET 命令不區分是插入操作還是更新操作,如果是插入操作的話,那麼返回值爲 1 ,如果是更新操作的話那麼返回值 是 0

HGETALL key 獲取鍵值

直接獲取一個對象的屬性和屬性值

127.0.0.1:6379[2]> HGETALL aa
1) "name"
2) "zhangsan"
3) "age"
4) "21"
5) "sex"
6) "1"

HEXISTS key field

判斷對象的屬性是否存在,存在返回 1 不存在返回 0

127.0.0.1:6379[2]> HEXISTS aa name
(integer) 1
127.0.0.1:6379[2]> HEXISTS aa aa
(integer) 0

HSETNX key field value

HSETNX 首先會判斷field是否存在,如果存在不執行任何操作,如果不存在則新增屬性和屬性值

127.0.0.1:6379[2]> hget aa sex
"1"
127.0.0.1:6379[2]> HSETNX aa sex 2 
(integer) 0
127.0.0.1:6379[2]> hget aa sex
"1"
127.0.0.1:6379[2]> HSETNX aa price shanghai
(integer) 1
127.0.0.1:6379[2]> HGETALL aa
1) "name"
2) "zhangsan"
3) "age"
4) "21"
5) "sex"
6) "1"
7) "price"
8) "shanghai"

HDEL key field

刪除對象中的屬性,刪除成功返回1 ,刪除不成功返回 0

127.0.0.1:6379[2]> HDEL aa price
(integer) 1
127.0.0.1:6379[2]> HGETALL aa
1) "name"
2) "zhangsan"
3) "age"
4) "21"
5) "sex"
6) "1"

HKEYS key 只獲取字段名 和 HVALS KEY 只獲取字段值

127.0.0.1:6379[2]> HKEYS aa
1) "name"
2) "age"
3) "sex"
127.0.0.1:6379[2]> HVALS aa
1) "zhangsan"
2) "21"
3) "1"

HLEN key 獲取字段的數量

獲取一個對象有多少個屬性

127.0.0.1:6379[2]> HLEN aa
(integer) 3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章