diff --git a/src/db.c b/src/db.c index 6ebfe6363..72fc2be0a 100644 --- a/src/db.c +++ b/src/db.c @@ -280,6 +280,7 @@ void delCommand(redisClient *c) { int deleted = 0, j; for (j = 1; j < c->argc; j++) { + expireIfNeeded(c->db,c->argv[j]); if (dbDelete(c->db,c->argv[j])) { signalModifiedKey(c->db,c->argv[j]); notifyKeyspaceEvent(REDIS_NOTIFY_GENERIC, diff --git a/tests/unit/basic.tcl b/tests/unit/basic.tcl index 1f46ba666..8da358968 100644 --- a/tests/unit/basic.tcl +++ b/tests/unit/basic.tcl @@ -261,6 +261,14 @@ start_server {tags {"basic"}} { assert_equal 20 [r get x] } + test "DEL against expired key" { + r debug set-active-expire 0 + r setex keyExpire 1 valExpire + after 1100 + assert_equal 0 [r del keyExpire] + r debug set-active-expire 1 + } + test {EXISTS} { set res {} r set newkey test