哈希對象編碼可以是ziplist或者hashtable。
ziplist編碼的哈希對象使用壓縮列表作爲底層實現。有新的鍵值對要保存時,程序會先將鍵值對的鍵推到列表表尾,再將鍵值對的值推到列表表尾。
hashtable編碼的哈希對象使用字典作爲底層實現,哈希對象中的每個鍵值對都是用一個字典鍵值對來保存。
當哈希對象滿足下面2個條件時,哈希對象使用ziplist編碼,其餘都使用hashtable編碼:
a.哈希對象保存所有鍵值對的鍵和值字符長度都小於64字節;
b.哈希對象保存的鍵值對數量小於512個;
上述2個條件的閥值是可以修改的,在配置文件中的 hash-max-ziplist-value 和 hash-max-ziplist-entries 選項中。