每個字典的底層采用哈希表實(shí)現(xiàn),每個字典帶有兩個哈希表,一個平常使用,一個僅在rehash時使用。redis使用murmurHash2算法來計算hash值
漸進(jìn)式rehash
字典的刪除,更新,查找會在兩個表上進(jìn)行,而新增只會在新的表中進(jìn)行。
以查找為例,會先在ht[0]中查找,找不到去ht[1]中找。
這樣的話可以保證ht[0]只增不減,最終全部轉(zhuǎn)移到ht[1]中。

redis數(shù)據(jù)庫的底層通過字典結(jié)構(gòu)來實(shí)現(xiàn)

