X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/69bfffb4a7aec38e5079ec10b0acc8629c1ee82b..0b10e1044496699585b401196dd86e19a9f87cc4:/src/db.c diff --git a/src/db.c b/src/db.c index 1f321c01..9daa5ddb 100644 --- a/src/db.c +++ b/src/db.c @@ -527,6 +527,8 @@ void propagateExpire(redisDb *db, robj *key) { int expireIfNeeded(redisDb *db, robj *key) { time_t when = getExpire(db,key); + if (when < 0) return 0; /* No expire for this key */ + /* If we are running in the context of a slave, return ASAP: * the slave key expiration is controlled by the master that will * send us synthesized DEL operations for expired keys. @@ -538,8 +540,6 @@ int expireIfNeeded(redisDb *db, robj *key) { return time(NULL) > when; } - if (when < 0) return 0; - /* Return when this key has not expired */ if (time(NULL) <= when) return 0; @@ -592,6 +592,7 @@ void expireatCommand(redisClient *c) { void ttlCommand(redisClient *c) { time_t expire, ttl = -1; + if (server.ds_enabled) lookupKeyRead(c->db,c->argv[1]); expire = getExpire(c->db,c->argv[1]); if (expire != -1) { ttl = (expire-time(NULL));