Redis的五大數據類型之哈希(Hash)的總結

Hash簡介

Hash類似於Java中的Map,是一個 String 類型的 field 和 value 的映射表(鍵值對集合),並且特別適合用來存儲對象。

Hash的常用操作命令總結

圖片來源:https://www.runoob.com/redis/redis-hashes.html

部分命令使用實例

1.HSET、HGET 、HMSET、 HMGET

HSET key field value
將哈希表 key 中的字段 field 的值設爲 value 。
HGET key field
獲取存儲在哈希表key中指定字段field的值。使用如下:

127.0.0.1:6379> HSET user name z3
(integer) 1
127.0.0.1:6379> HGET user name
"z3"

HMSET key field1 value1 [field2 value2 ]
HMSET命令可以同時將多個 field-value (域-值)對設置到哈希表 key 中。
HMGET key field1 [field2]
HMGET命令可以批量返回key指定的哈希表中指定字段field的值,使用如下:

127.0.0.1:6379> HMSET user id 1 age 18
OK
127.0.0.1:6379> HMGET user id age
1) "1"
2) "18

2.HGETALL、 HKEYS、 HVALS

HGETALL key
獲取在哈希表 key 中的所有字段和值。返回值:field1,value1,field2,value2,…,返回值中,每個字段名的下一個是它的值,所以返回值的長度是哈希集大小的兩倍。使用如下:

127.0.0.1:6379> HGETALL user
1) "name"
2) "z3"
3) "id"
4) "1"
5) "age"
6) "18"

HKEYS key
用於獲取哈希表key中的所有字段field,使用如下:

127.0.0.1:6379> HKEYS user
1) "name"
2) "id"
3) "age"

HVALS key
用於獲取哈希表key中的所有值value,使用如下:

127.0.0.1:6379> HVALS user
1) "z3"
2) "1"
3) "18"

3.HDEL

HDEL key field1 [field2]
刪除哈希表key中的一個或多個指定的哈希表字段field,如下:

127.0.0.1:6379> HMSET user k1 v1 k2 v2
OK
127.0.0.1:6379> HDEL user k1 k2
(integer) 2
127.0.0.1:6379> HKEYS user
1) "name"
2) "id"
3) "age"

4.HLEN

HLEN key
獲取哈希表key中字段field的數量,如下:

127.0.0.1:6379> HKEYS user
1) "name"
2) "id"
3) "age"
127.0.0.1:6379> HLEN user
(integer) 3

5.HEXISTS

HEXISTS key field
查看哈希表 key 中,指定的字段field是否存在。存在返回1,不存在返回0,使用如下:

127.0.0.1:6379> HEXISTS user k1
(integer) 0
127.0.0.1:6379> HEXISTS user name
(integer) 1

6.HINCRBY、HINCRBYFLOAT

HINCRBY key field increment
爲哈希表 key 中的指定字段field的整數值加上增量 increment 。field對應的值必須是整數,成功執行後返回field更改後的值。如果key不存在,會創建一個新的哈希集並與key關聯。如果字段不存在,則字段的值在該操作執行前被設置爲0,HINCRBY支持的值的範圍限定在64位有符號整數。使用如下:

127.0.0.1:6379> HINCRBY user name 2
(error) ERR hash value is not an integer
127.0.0.1:6379> HINCRBY user id 2
(integer) 3
127.0.0.1:6379> HGET user id
"3"

HINCRBYFLOAT key field increment
與HINCRBY相似,HINCRBYFLOAT爲哈希表 key 中的指定字段field的浮點數值加上增量 increment 。increment和field對應的值可以是整數或浮點數,成功執行後返回field更改後的值。使用如下:

127.0.0.1:6379> HINCRBYFLOAT user id 1.5
"4.5"
127.0.0.1:6379> HINCRBYFLOAT user id 5
"9.5"
127.0.0.1:6379> hget user id
"9.5"

7.HSETNX

HSETNX key field value
只有在字段 field 不存在時,設置哈希表key中字段的值。成功返回1,失敗返回0.使用如下:

127.0.0.1:6379> hget user id
"9.5"
127.0.0.1:6379> HSETNX user id 10
(integer) 0
127.0.0.1:6379> HSETNX user point 2
(integer) 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章