The redis reply is not always freed from Redis::dequeueBase, when exceptions are thrown the allocated reply is discarded and not freed. Using a std::unique_ptr<redisReply, freeReplyObject> for all replies in the entire file would make sense and avoid any possible leaks.