diff options
author | antirez <antirez@gmail.com> | 2020-02-14 18:22:25 +0100 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2020-02-14 18:22:25 +0100 |
commit | 20eeddfb8a8840aff8ac9e54a69650890d9c1e64 (patch) | |
tree | 15ef8c40acd82a89a97c38d61bebfa862491d9bb /src | |
parent | 090bc0c1a37cfba092102527524ee2a3023d0481 (diff) | |
download | redis-20eeddfb8a8840aff8ac9e54a69650890d9c1e64.tar.gz |
Signal key as modified when expired on-access.
This fixes WATCH and client side caching with keys expiring because of
a synchronous access and not because of background expiring.
Diffstat (limited to 'src')
-rw-r--r-- | src/db.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1296,8 +1296,10 @@ int expireIfNeeded(redisDb *db, robj *key) { propagateExpire(db,key,server.lazyfree_lazy_expire); notifyKeyspaceEvent(NOTIFY_EXPIRED, "expired",key,db->id); - return server.lazyfree_lazy_expire ? dbAsyncDelete(db,key) : - dbSyncDelete(db,key); + int retval = server.lazyfree_lazy_expire ? dbAsyncDelete(db,key) : + dbSyncDelete(db,key); + if (retval) signalModifiedKey(db,key); + return retval; } /* ----------------------------------------------------------------------------- |