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