return dictDelete(db->dict,key->ptr) == DICT_OK;
}
-/* Empty the whole database */
+/* Empty the whole database.
+ * If diskstore is enabled this function will just flush the in-memory cache. */
long long emptyDb() {
int j;
long long removed = 0;
removed += dictSize(server.db[j].dict);
dictEmpty(server.db[j].dict);
dictEmpty(server.db[j].expires);
+ if (server.ds_enabled) dictEmpty(server.db[j].io_negcache);
}
return removed;
}
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.
return time(NULL) > when;
}
- if (when < 0) return 0;
-
/* Return when this key has not expired */
if (time(NULL) <= when) return 0;