redis的第二種資料型別——hash
阿新 • • 發佈:2020-12-21
前一篇介紹了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"