From 24036b4d32d857066a2ccfc6cef2e8a751634ad5 Mon Sep 17 00:00:00 2001 From: "zhaozhao.zz" Date: Sun, 22 Apr 2018 22:30:44 +0800 Subject: [PATCH] RDB: expand dict if needed when rdb load object --- src/rdb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/rdb.c b/src/rdb.c index 27c3aa78..639be1ea 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -1427,6 +1427,9 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { o = createZsetObject(); zs = o->ptr; + if (zsetlen > DICT_HT_INITIAL_SIZE) + dictExpand(zs->dict,zsetlen); + /* Load every single element of the sorted set. */ while(zsetlen--) { sds sdsele; @@ -1495,6 +1498,9 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { 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 */ while (o->encoding == OBJ_ENCODING_HT && len > 0) { len--;