Redis中的惰性删除:Lazy free的使用方法
作者:小确幸
时间:2023-04-29
浏览:4
Redis Assistant
Redis Assistant 是一款为Redis设计的高效可视化管理与监控工具,提供多种操作模式,高效处理服务器数据。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。
¥19
Windows/macOS/Linux
2026-08-22
使用惰性删除Lazyfreekey过期或是使用DEL删除命令时,Redis除了从全局hash表移除对象外,还会将对象分配的内存释放。当遇到bigkey时,释放内存会造成主线程阻塞。为此,Redis4.0引入了UNLINK命令,将释放对象内存操作放入bio后台线程执行。从而有效减少主线程阻塞。Redis6.0更进一步,引入了Lazy-free相关配置。当开启配置后,key过期和DEL命令内部,会将「释放对象」操作「异步执行」。voiddelCommand(client*c){delGenericComman
本文目录
使用惰性删除 Lazy free
key 过期或是使用 DEL 删除命令时,Redis 除了从全局 hash 表移除对象外,还会将对象分配的内存释放。当遇到 big key 时,释放内存会造成主线程阻塞。
为此,Redis 4.0 引入了 UNLINK 命令,将释放对象内存操作放入 bio 后台线程执行。从而有效减少主线程阻塞。
Redis 6.0 更进一步,引入了 Lazy-free 相关配置。当开启配置后,key 过期和 DEL 命令内部,会将「释放对象」操作「异步执行」。
void delCommand(client *c) {
delGenericCommand(c,server.lazyfree_lazy_user_del);}void delGenericCommand(client *c, int lazy) {
int numdel = 0, j;
for (j = 1; j < c->argc; j++) {
expireIfNeeded(c->db,c->argv[j]);
// 开启 lazy free 则使用异步删除
int deleted = lazy ? dbAsyncDelete(c->db,c->argv[j]) :
dbSyncDelete(c->db,c->argv[j]);
...
}}建议至少升级到 Redis 6,并开启 Lazy-free。
作者最新文章
漫蛙漫画下载免费安卓最新版本
2026-10-13 13:18
漫蛙下载最新版安装包
2026-10-13 13:18
漫蛙manwaapp安卓最新版下载
2026-10-13 13:18
漫蛙动漫APP下载安装最新版本
2026-10-13 13:17
漫蛙漫画APP官方下载最新版本
2026-10-13 13:17
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































