RDB: expand dict if needed when rdb load object

This commit is contained in:
zhaozhao.zz 2018-04-22 22:30:44 +08:00
parent aba76320d5
commit 24036b4d32

View File

@ -1427,6 +1427,9 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
o = createZsetObject(); o = createZsetObject();
zs = o->ptr; zs = o->ptr;
if (zsetlen > DICT_HT_INITIAL_SIZE)
dictExpand(zs->dict,zsetlen);
/* Load every single element of the sorted set. */ /* Load every single element of the sorted set. */
while(zsetlen--) { while(zsetlen--) {
sds sdsele; sds sdsele;
@ -1495,6 +1498,9 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
sdsfree(value); sdsfree(value);
} }
if (o->encoding == OBJ_ENCODING_HT && len > DICT_HT_INITIAL_SIZE)
dictExpand(o->ptr,len);
/* Load remaining fields and values into the hash table */ /* Load remaining fields and values into the hash table */
while (o->encoding == OBJ_ENCODING_HT && len > 0) { while (o->encoding == OBJ_ENCODING_HT && len > 0) {
len--; len--;