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

2021-06-16 20:43:53 字數 4342 閱讀 4595

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

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

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

1,hset 命令:

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

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的值。

redis 127.0.0.1:6379> hget user name

"lisi"

3,hsetnx 命令:

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

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。

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

ok

5,hmget 命令:

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

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的所有域的值。

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.

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。

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的所有域。

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的所有值。

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 。

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不存在,則忽略操作。

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...