mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
WATCH no longer ignores keys which have expired for MULTI/EXEC. (#7920)
This wrong behavior was backed by a test, and also documentation, and dates back to 2010. But it makes no sense to anyone involved so it was decided to change that. Note that20eeddf
(invalidate watch on expire on access) was released in 6.0 RC2 and2d1968f
released in in 6.0.0 GA (invalidate watch when key is evicted). both of which do similar changes.
This commit is contained in:
parent
c96ece9f5e
commit
556acefe75
@ -64,7 +64,7 @@ int activeExpireCycleTryExpire(redisDb *db, dictEntry *de, long long now) {
|
||||
dbSyncDelete(db,keyobj);
|
||||
notifyKeyspaceEvent(NOTIFY_EXPIRED,
|
||||
"expired",keyobj,db->id);
|
||||
trackingInvalidateKey(NULL,keyobj);
|
||||
signalModifiedKey(NULL, db, keyobj);
|
||||
decrRefCount(keyobj);
|
||||
server.stat_expiredkeys++;
|
||||
return 1;
|
||||
|
@ -221,7 +221,7 @@ start_server {tags {"multi"}} {
|
||||
r exec
|
||||
} {}
|
||||
|
||||
test {WATCH will not consider touched expired keys} {
|
||||
test {WATCH will consider touched expired keys} {
|
||||
r del x
|
||||
r set x foo
|
||||
r expire x 1
|
||||
@ -230,7 +230,7 @@ start_server {tags {"multi"}} {
|
||||
r multi
|
||||
r ping
|
||||
r exec
|
||||
} {PONG}
|
||||
} {}
|
||||
|
||||
test {DISCARD should clear the WATCH dirty flag on the client} {
|
||||
r watch x
|
||||
|
Loading…
Reference in New Issue
Block a user