Redis實戰 雜湊型別(Hash)

2021-08-17 03:59:45 字數 1838 閱讀 2741

hset命令用來給字段賦值,而hget命令用來獲得欄位的值。用法如下:

127.0.0.1:6379> hset car price 500

(integer) 1

127.0.0.1:6379> hset car name bmw

(integer) 1

127.0.0.1:6379> hget car name

"bmw"

127.0.0.1:6379> hset car price 600

(integer) 0

hset命令的方便之處在於不區分插入和更新操作,這意味著修改資料時不用事先判斷字段是否存在,來決定要執行的是插入操作(update)還是更新操作(insert)。當執行的是插入操作時(即之前欄位不存在)hset命令會返回1,當執行的是更新操作時(即之前的字段已經存在)hset命令會返回0。更進一步,當鍵本身不存在時,hset命令還會自動建立它。

127.0.0.1:6379> hmset car price 500 name bmw

ok127.0.0.1:6379> hmget car price name

1)"500"

2)"bmw"

hexists命令用來判斷乙個字段是否存在。如果存在則返回1,否則返回0。

127.0.0.1:6379> hexists car model

(integer) 0

127.0.0.1:6379> hset car model c200

(integer) 1

127.0.0.1:6379> hexists car model

(integer) 1

hsetnx命令和hset命令類似,區別在於如果字段已經存在,hsenx命令將不執行任何操作。其實現可以表示為如下偽**:

def hsetnx

($key,$field,$value)

$i***ists=hexists $key,$field

if $i***ists is 0

hset $key,$field,$value

return

1else

return

0

127.0.0.1:6379> hsetnx car price 600

(integer) 0

127.0.0.1:6379> hget car price

"500"

雜湊型別沒有hincr命令,但是可以通過hincrby key value 1來實現。

127.0.0.1:6379> hincrby person score 90

(integer) 90

127.0.0.1:6379> hget person score

"90"

hdel命令可以刪除乙個或多個字段,返回值是被刪除的字段個數。

127.0.0.1:6379> hdel car model

(integer) 1

127.0.0.1:6379> hdel car model

(integer) 0

127.0.0.1:6379> hkeys car

1)"price"

2)"name"

127.0.0.1:6379> hvals car

1)"500"

2)"bmw"

127.0.0.1:6379> hlen car

(integer) 2

Redis 雜湊hash 型別

redis hash 是乙個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件 基本語法 設定值 hmset hmset zhangsan name 張三 age 20 男 設定值 hset hset zhangsan name 張三 獲取資料 hgetal...

redis之雜湊型別(hash)

redis的雜湊值是字串欄位和字串值之間的對映,所以他們是表示物件的完美資料型別。在redis中的雜湊值,可儲存超過400十億鍵值對。假如我有乙個表示 職工 的物件,他可以有如下屬性 看看是如何將物件儲存到redis中的 hmset zhibin name binbin age 26 positio...

Redis的雜湊型別 Hash

redis hash 是乙個鍵值對集合。redis hash是乙個string型別的field和value的對映表,hash特別適合用於儲存物件。本次演示hash的基本操作 將雜湊表的key值test hash中的值value設為 123 lalala 333 123abc 127.0.0.1 63...