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 <lvshuning@meituan.com>
This commit is contained in:
Shuning 2022-10-18 18:55:49 +08:00 committed by GitHub
parent ba1f09d3fe
commit 20d286f77e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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