From 20d286f77eabccd657be66d3193556ea7ebe4d26 Mon Sep 17 00:00:00 2001 From: Shuning <36000971+lsn1994@users.noreply.github.com> Date: Tue, 18 Oct 2022 18:55:49 +0800 Subject: [PATCH] keyIsExpired checks server.loading before calling getExpire (#11393) Seems excessive to call getExpire if we don't need it. This can maybe have some speedup on AOF file loading (saving a dictFind call) Co-authored-by: lvshuning --- src/db.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/db.c b/src/db.c index b7b4dc390f..63705cd01a 100644 --- a/src/db.c +++ b/src/db.c @@ -1612,14 +1612,14 @@ void propagateDeletion(redisDb *db, robj *key, int lazy) { /* Check if the key is expired. */ int keyIsExpired(redisDb *db, robj *key) { + /* Don't expire anything while loading. It will be done later. */ + if (server.loading) return 0; + mstime_t when = getExpire(db,key); mstime_t now; if (when < 0) return 0; /* No expire for this key */ - /* Don't expire anything while loading. It will be done later. */ - if (server.loading) return 0; - now = commandTimeSnapshot(); /* The key expired if the current (virtual or real) time is greater