Invert two sides of if expression in SET to avoid a lookup.

Because of the short circuit behavior of && inverting the two sides of
the if expression avoids an hash table lookup if the non-EX variant of
SET is called.

Thanks to Weibin Yao (@yaoweibin on github) for spotting this.
This commit is contained in:
antirez 2012-10-31 09:23:05 +01:00
parent 52d954912e
commit 10f6b3ec22

View File

@ -26,7 +26,7 @@ void setGenericCommand(redisClient *c, int nx, robj *key, robj *val, robj *expir
if (unit == UNIT_SECONDS) milliseconds *= 1000; if (unit == UNIT_SECONDS) milliseconds *= 1000;
} }
if (lookupKeyWrite(c->db,key) != NULL && nx) { if (nx && lookupKeyWrite(c->db,key) != NULL) {
addReply(c,shared.czero); addReply(c,shared.czero);
return; return;
} }