源码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

/* This is the initial size of every hash table */

#define DICT_HT_INITIAL_SIZE     4

/* Our hash table capability is a power of two */

static unsigned long _dictNextPower(unsigned long size)

{

    unsigned long i = DICT_HT_INITIAL_SIZE;



    if (size >= LONG_MAX) return LONG_MAX + 1LU;

    while(1) {

        if (i >= size)

            return i;

        i *= 2;

    }

}

结论

Redis的dict会从4开始扩张,最大到达LONG_MAX + 1LU