Redis之hashes型別及操作

2021-07-30 23:45:39 字數 1536 閱讀 2529

redis hash是乙個string型別的field和value的對映表.它的新增、刪除操作都是o(1)(平均)。hash特別適合用於儲存物件。相較於將物件的每個欄位存成單個string型別。將乙個物件儲存在hash型別中會占用更少的記憶體,並且可以更方便的訪問整個物件。省記憶體的原因是新建乙個hash物件時開始是用zipmap(又稱為small hash)來儲存的。這個zipmap其實並不是hash table,但是zipmap相比正常的hash實現可以節省不少hash本身需要的一些元資料儲存開銷。儘管zipmap的新增,刪除,查詢都是o(n),但是由於一般物件的field數量都不太多。所以使用zipmap也是很快的,也就是說新增刪除平均還是o(1)。如果field或者value的大小超出一定限制後,redis會在內部自動將zipmap替換成正常的hash實現. 這個限制可以在配置檔案中指定 hash-max-zipmap-entries 64 #配置欄位最多64個 hash-max-zipmap-value 512 #配置value最大為512位元組

hset

設定hash field為指定值,如果key不存在,則先建立。

hset key field value

hsetnx

設定hash field為指定值,如果key不存在,則先建立。如果field已經存在,返回0,nx是not exist的意思

hsetnx key field value

hmset

同時設定hash的多個field

hmset key field value [field value …]

hget

獲取指定hash field

hget key field

hmget

獲得全部指定的hash field

hmget value field [field …]

hincrby

指定的hash field 加上指定值

hincrby key field increment

hexists

測試指定field是否存在

hexists key field

hlen

返回指定的field數量

hlen value

hdel

刪除指定field,存在且操作成功返回1,否則返回0

hdel key field

hkeys

返回hash的所有field

hkeys value

hvals

返回hash的所有value

hvals key

hgetall

獲取某個hash中全部的field和value

hgetall key

Redis學習總結之hashes型別

1.hset 設定hash field為指定值,如果key不存在,則先建立 hset user name name1 2.hsetnx 設定hash field為指定值,如果key不存在,則先建立,如果存在返回0.3.hmset 同時設定hash的多個field hmset user name na...

redis的資料型別 hashes

1.hashes型別 2.方法 1.hset 設定 hash field為指定值,如果key不存在,則先建立。例 hset table name cl。設定table的name字段值為cl。獲取 gset table name 2.hsetnx 設定hash field為指定值,如果key不存在,則...

Redis實戰(4)資料型別二Hashes

redis hash 是乙個 string 型別的 field 和 value 的對映表.它的新增 刪除操作都是 o 1 平均 hash 特別適合用於儲存物件。相較於將物件的每個欄位存成單個 string 型別。將乙個物件儲存在 hash 型別中會占用更少的記憶體,並且可以更方便的訪問整個物件。省記...