Redis Hash型別資料常用命令總結

2022-04-08 19:16:28 字數 4656 閱讀 3280

redis hash型別資料常用命令總結

hash是一種資料結構,一般翻譯做「雜湊」,也有直接音譯為「雜湊」。redis  hash  是乙個string型別的field和value的對映表。它特別適合用於儲存物件。同將物件的每個欄位存成單個string型別,儲存為hash型別會占用更少的記憶體,並且方便的訪問整個物件。

下面是關於hash型別儲存的一些常用方法(命令):

1,hset 命令:

hset             將hash表中key  的 field域設定為值value。如果key值不存在,操作成功後返回1,如果key值已經存在,則覆蓋原來的值,成功後返回0。

[plain] 

redis 127.0.0.1:6379> hset user name  'zhangsan'          # 設定值為zhangsan  

(integer) 1  

redis 127.0.0.1:6379> hset user name  'lisi'              # 將值覆蓋為lisi  

(integer) 0  

redis 127.0.0.1:6379>  

2,hget  命令:

hget        返回hash表中指定key的field的值。

[plain] 

redis 127.0.0.1:6379> hget user name  

"lisi"  

3,hsetnx 命令:

hsetnx            當且緊當filed域不存在時,設定值為value。如果該域不存在,返回1,如果該域已經存在,則不會執行操作,且返回0。

[plain] 

redis 127.0.0.1:6379> hget user name  

"zhangsna"  

redis 127.0.0.1:6379> hsetnx user name 'lisi'  

(integer) 0                                          # 將name域的值設定為lisi時操作失敗,因為name域已經存在  

redis 127.0.0.1:6379> hsetnx user age  22       # 將age域的值設定為22,操作成功,應為age域不存在  

(integer) 1  

redis 127.0.0.1:6379> hget user name                 # 取出name的值,並沒有被修改  

"zhangsna"  

redis 127.0.0.1:6379> hget user age  

"22"  

redis 127.0.0.1:6379>  

4,hmset 命令:

hmset          [   ...]  同時將多個「域-值」對儲存在key鍵中,如果key不存在會自動建立,如果field已經存在,則會覆蓋原來的值。操作成功後返回值ok。

[plain] 

redis 127.0.0.1:6379> hmset product name 'computer' price '3200' size '14inch'  

ok  

5,hmget 命令:

hmget      [....]  返回hash表中key的乙個或者多個域值。如果給定的網域名稱稱在此hash表中不存在,則返回nil。

[plain] 

redis 127.0.0.1:6379> hmget product name price size contact  

1) "computer"           # name的值  

2) "3200"               # price的值  

3) "14inch"             # size的值  

4) (nil)                # contact的值在hash表中不存在,返回nil  

6,hgetall 命令:

hgetall      返回hash表中key的所有域的值。

[plain] 

redis 127.0.0.1:6379> hgetall product  

1) "name"  

2) "computer"  

3) "price"  

4) "3200"  

5) "size"  

6) "14inch"  

6,hlen 命令:

hlen    返回hash表中key中所有域的總數。當key值不存在時,返回0.

[plain] 

redis 127.0.0.1:6379> hlen product  

(integer) 3          # product中域的數量為3  

redis 127.0.0.1:6379> hlen amimal  

(integer) 0          # 未定義amimal,所以返回的是0  

7,hexists 命令:

hexists        檢視hash表中,給定key的域field是否存在。如果存在,則返回1,如果field不存在或者是key也不存在,返回0。

[plain] 

redis 127.0.0.1:6379> hexists product name  

(integer) 1                             # product中存在name域  

redis 127.0.0.1:6379> hexists product contact  

(integer) 0             # product中不存在contact域  

8,hkeys  命令:

hkeys      返回所有hash表中的key的所有域。

[plain] 

redis 127.0.0.1:6379> hkeys product  

1) "name"  

2) "price"  

3) "size"  

redis 127.0.0.1:6379> hkeys amimal  

(empty list or set)  

redis 127.0.0.1:6379>  

9, hvals 命令:

hvals    返回所有hash表中的key的所有值。

[plain] 

redis 127.0.0.1:6379> hvals product  

1) "computer"  

2) "3200"  

3) "14inch"  

redis 127.0.0.1:6379> hvals amimal  

(empty list or set)  

10, hincrby 命令:

hincrby           為雜湊表 key 中的域 field 的值加上增量 increment 。增量也可以為負數,相當於對給定域進行減法操作。如果 key 不存在,乙個新的雜湊表被建立並執行 hincrby 命令。如果域 field 不存在,那麼在執行命令前,域的值被初始化為 0 。

[plain] 

redis 127.0.0.1:6379> hincrby product price 200  

(integer) 3400                              # price增加200  

redis 127.0.0.1:6379> hincrby product final 3200  

(integer) 3200                              # 域final本不存在,初始化為0,然後增加3200  

redis 127.0.0.1:6379> hincrby product price -100  

(integer) 3300                              # price減去100  

11,hdel  命令:

hdel      [...]  刪除hash表中key的乙個或者多個域的值。如果指定的field不存在,則忽略操作。

[plain] 

redis 127.0.0.1:6379> hgetall product  

1) "name"  

2) "computer"  

3) "price"  

4) "3300"  

5) "size"  

6) "14inch"  

7) "final"  

8) "3200"  

redis 127.0.0.1:6379> hdel product size  

(integer) 1  

redis 127.0.0.1:6379> hgetall product  

1) "name"  

2) "computer"  

3) "price"  

4) "3300"  

5) "final"  

6) "3200"  

redis 127.0.0.1:6379> hdel product final price  

(integer) 2  

redis 127.0.0.1:6379> hgetall product  

1) "name"  

2) "computer"  

Redis hash資料型別

1.hash型別?在redis中,hash是乙個鍵值 key value 對集合。簡單來講就是field和value的對映表,比較適合於儲存物件。hash的儲存用法 在這邊,如果你輸入的是漢語,想想也就知道我們在底層中儲存中,存到是編碼後的資料。2.常見的hash操作指令命令 解釋hdel key ...

Redis Hash型別資料常用命令總結

redis hash型別資料常用命令總結 hash是一種資料結構,一般翻譯做 雜湊 也有直接音譯為 雜湊 redis hash 是乙個string型別的field和value的對映表。它特別適合用於儲存物件。同將物件的每個欄位存成單個string型別,儲存為hash型別會占用更少的記憶體,並且方便的...

Redis Hash型別資料初次使用

redis是一種非關係型資料庫 not only sql nosql,儲存鍵值對,讀寫硬碟的速度很快 與其他nosql相比,redis支援更多種類的資料型別 如,字串列表 字串集合以及雜湊表等 來自wiki pedia redis version 2.8.13 os linux 應用場景 儲存ses...