summaryrefslogtreecommitdiff
path: root/src/expire.c
diff options
context:
space:
mode:
authormenwen <menwenjun@gmail.com>2021-08-05 16:09:24 +0800
committerGitHub <noreply@github.com>2021-08-05 11:09:24 +0300
commitca559819f7dcd97ba9ef667bf38360a9527d62f6 (patch)
tree4b0e57c64171168126faaccd0f18a1afeb8f7a43 /src/expire.c
parentd32f8641ed5cda76234f7405d2b65e167223a9f1 (diff)
downloadredis-ca559819f7dcd97ba9ef667bf38360a9527d62f6.tar.gz
Add latency monitor sample when key is deleted via lazy expire (#9317)
Fix that there is no sample latency after the key expires via expireIfNeeded(). Some refactoring for shared code.
Diffstat (limited to 'src/expire.c')
-rw-r--r--src/expire.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/src/expire.c b/src/expire.c
index 858c13549..798651255 100644
--- a/src/expire.c
+++ b/src/expire.c
@@ -53,24 +53,11 @@
* to the function to avoid too many gettimeofday() syscalls. */
int activeExpireCycleTryExpire(redisDb *db, dictEntry *de, long long now) {
long long t = dictGetSignedIntegerVal(de);
- mstime_t expire_latency;
if (now > t) {
sds key = dictGetKey(de);
robj *keyobj = createStringObject(key,sdslen(key));
-
- propagateExpire(db,keyobj,server.lazyfree_lazy_expire);
- latencyStartMonitor(expire_latency);
- if (server.lazyfree_lazy_expire)
- dbAsyncDelete(db,keyobj);
- else
- dbSyncDelete(db,keyobj);
- latencyEndMonitor(expire_latency);
- latencyAddSampleIfNeeded("expire-del",expire_latency);
- notifyKeyspaceEvent(NOTIFY_EXPIRED,
- "expired",keyobj,db->id);
- signalModifiedKey(NULL, db, keyobj);
+ deleteExpiredKeyAndPropagate(db,keyobj);
decrRefCount(keyobj);
- server.stat_expiredkeys++;
return 1;
} else {
return 0;