1. 程式人生 > 其它 >redis的第二種資料型別——hash

redis的第二種資料型別——hash

技術標籤:redisredis

前一篇介紹了redis的第一種資料型別string。這一波來介紹一下第二種資料型別hash。

hash類似於程式中的物件,每個物件可以有多個屬性。結構如下圖:key -> field:value
在這裡插入圖片描述

hash 的命令都以 h 開頭

1.hset key field value

> hset s1 name pygo age 18
(integer) 2

2.hget key field

> hget s1 name
"pygo"
> hget s1 age
"18"
> hget s1 hobby
(nil)

3.增加一個field

> hset s1 hobby girls
(integer) 1
> hget s1 hobby
"girls"

4.刪除一個field:hdel key fielde

> hdel s1 hobby
(integer) 1
> hget s1 hobby
(nil)

5.獲取全部欄位和值:hgetall key

> hgetall s1
1) "name"
2) "pygo"
3) "age"
4) "18"

6.獲取全部欄位:hkeys key

> hkeys s1
1) "name"
2) "age"

7.獲取全部值:hvals key

> hvals s1
1) "pygo"
2) "18"

8.判斷field是否存在:hexists key field

hexists s1 name
(integer) 1
> hexists s1 hobby
(integer) 0

9.檢視key有幾個field:hlen key

> hlen s1
(integer) 2

10.批量獲取field:hmget key field1 field2 …

> hmget s1 name age
1) "pygo"
2) "18"

11.批量設定field-value:hmset key field1 value1 field2 value2…

> hlen s1
(integer) 2
> hmset s1 hobby girls address china
OK
> hlen s1
(integer) 4

12.不存在才設定:hsetnx key field value

> hsetnx s1 name tom
(integer) 0
> hsetnx s1 nickname tom
(integer) 1

13.自增操作:hincrby key field increment

> hincrby s1 age 2
(integer) 20
注意:有自增 卻沒有自減操作。如果想要自減,可以用負數
> hincrby s1 age -2
(integer) 18

14.浮點數自增:hincrbyfloat key field increment

> hincrbyfloat s1 age 2.5
"20.5"
> hincrbyfloat s1 age -2.5
"18"