summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2014-04-23 16:13:49 +0200
committerSalvatore Sanfilippo <antirez@gmail.com>2014-04-23 16:13:49 +0200
commit32c917964efb7c617597a409e02deef9952763f8 (patch)
tree02bab909aae10751a4746eeae00cf328efc933dc
parent12e435d2a49a3a121b91b14c23162c800d5fb798 (diff)
parent88530804e8c7ad977277ea693026b2b0a5f4816d (diff)
downloadredis-32c917964efb7c617597a409e02deef9952763f8.tar.gz
Merge pull request #1677 from mattsta/expire-before-delete
Check key expiration before deleting
-rw-r--r--src/db.c1
-rw-r--r--tests/unit/basic.tcl8
2 files changed, 9 insertions, 0 deletions
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