redis一個(gè)hash能存多少field

hash是一個(gè)String類型的field和value的映射表。添加和刪除操作都是o(1)(平均)的復(fù)雜度。hash類型特別適合用于存儲對象。在field的數(shù)量在限制的范圍內(nèi)以及value的長度小于指定的字節(jié)數(shù),那么此時(shí)的hash類型是用zipmap存儲的,所以會比較節(jié)省內(nèi)存。可以在配置文件里面修改配置項(xiàng)來控制field的數(shù)量和value的字節(jié)數(shù)大小。

redis一個(gè)hash能存多少field

hash-max-zipmap-entries 512 #配置字段最多512個(gè)

hash-max-zipmap-value 64 #配置value最大為64字節(jié)。

必須滿足以上兩個(gè)條件,那么該key會被壓縮。否則就是按照正常的hash結(jié)構(gòu)來存儲hash類型的key。

【注意】這兩個(gè)配置并不是限制hash結(jié)構(gòu)最多只能存多少個(gè)field以及value的最大字節(jié)數(shù),而是說在field未超過配置的數(shù)量,而且每一個(gè)filed對應(yīng)的value的長度都小于指定的字節(jié)數(shù)時(shí),注意是兩個(gè)條件都滿足時(shí),該key的存儲是采用的zipmap,就是壓縮了的數(shù)據(jù),節(jié)省空間。當(dāng)field的數(shù)量超過了,或者其中有value的長度大于指定的長度,那么整個(gè)key就會采用正常的hash結(jié)構(gòu)來在內(nèi)存中存儲。

redis hash 是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲對象。

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

實(shí)例

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"

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享