搜索

详解 Redis 内存管理机制和实现

发表于 2025-11-05 07:51:49 来源:益强智未来
详解 Redis 内存管理机制和实现
复制int expireIfNeeded(redisDb *db,详解 robj *key) {  // 获取键的过期时间  mstime_t when = getExpire(db,key);  mstime_t now;  // 键没有过期时间  if (when < 0) return 0;  // 实例正在从硬盘 laod 数据,比如说 RDB 或者 AOF  if (server.loading) return 0;  // 当执行lua脚本时,存管只有键在lua一开始执行时  // 就到了过期时间才算过期,理机否则在lua执行过程中不算失效  now = server.lua_caller ?制和 server.lua_time_start : mstime();  // 当本实例是slave时,过期键的实现删除由master发送过来的  // del 指令控制。服务器托管但是详解这个函数还是将正确的信息返回给调用者。  if (server.masterhost != NULL) return now > when;  // 判断是存管否未过期  if (now <= when) return 0;  // 代码到这里,说明键已经过期,理机而且需要被删除  server.stat_expiredkeys++;  // 命令传播,WordPress模板制和到 slave 和 AOF  propagateExpire(db,实现key,server.lazyfree_lazy_expire);  // 键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的详解事件。  notifyKeyspaceEvent(NOTIFY_EXPIRED,存管  "expired",key,db->id);  // 如果是惰性删除,调用dbAsyncDelete,理机否则调用 dbSyncDelete  return server.lazyfree_lazy_expire ?制和 dbAsyncDelete(db,key) :  dbSyncDelete(db,key); }  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.
随机为您推荐
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by 详解 Redis 内存管理机制和实现,益强智未来  滇ICP备2023006006号-17sitemap

回顶部