From 973cb21a0152642ec904cf8f8ab238a31e6ebaa9 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 31 Oct 2012 09:23:05 +0100 Subject: [PATCH 1/1] 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. --- src/t_string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/t_string.c b/src/t_string.c index 1e29a613..ba427961 100644 --- a/src/t_string.c +++ b/src/t_string.c @@ -26,7 +26,7 @@ void setGenericCommand(redisClient *c, int nx, robj *key, robj *val, robj *expir if (unit == UNIT_SECONDS) milliseconds *= 1000; } - if (lookupKeyWrite(c->db,key) != NULL && nx) { + if (nx && lookupKeyWrite(c->db,key) != NULL) { addReply(c,shared.czero); return; } -- 2.45.2