首頁  >  文章  >  資料庫  >  redis一個hash能存多少field

redis一個hash能存多少field

anonymity
anonymity原創
2019-06-05 10:36:0415323瀏覽

hash是一個string類型的field和value的映射表。新增和刪除操作都是O(1)(平均)的複雜度。 hash類型特別適合用於儲存物件。在field的數量在限制的範圍內以及value的長度小於指定的位元組數,那麼此時的hash類型是用zipmap儲存的,所以會比較節省記憶體。可以在設定檔裡面修改配置項來控制field的數量和value的位元組數大小。

redis一個hash能存多少field

hash-max-zipmap-entries 512 #設定欄位最多512個

hash-max-zipmap-value 64 #設定value最大為64位元組。

必須滿足以上兩個條件,那麼該key會被壓縮。否則就是按照正常的hash結構來儲存hash類型的key。

【注意】這兩個配置並不是限制hash結構最多只能存多少個field以及value的最大位元組數,而是說在field未超過配置的數量,而且每一個filed對應的value的長度都小於指定的位元組數時,注意是兩個條件都滿足時,該key的儲存是採用的zipmap,就是壓縮了的數據,節省空間。當field的數量超過了,或者其中有value的長度大於指定的長度,那麼整個key就會採用正常的hash結構來在記憶體中儲存。

Redis hash 是一個string類型的field和value的映射表,hash特別適合用來儲存物件。

Redis 中每個 hash 可以儲存 232 - 1 鍵值對(40多億)。

實例

127.0.0.1:6379>  HMSET Rediskey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
127.0.0.1:6379>  HGETALL Rediskey 
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"

以上是redis一個hash能存多少field的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn