You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS中Redis Key删除失败求助:代码无效但redis-cli可删除

问题分析与解决方案

核心问题

你代码里生成的jobName错误包含了双引号,导致Redis客户端尝试删除的key与实际存在的key不匹配。

看你的日志输出Removing "bull:mt-queue:4" key from redis,这里的双引号已经被当作key的一部分传给了redisClient.del(),但Redis中真实存在的key是bull:mt-queue:4(不带引号)。而你用redis-cli del "bull:mt-queue:4"时,引号是Shell的参数包裹符,Redis实际接收到的key是不带引号的,所以命令能生效;但代码里把引号作为key的一部分,自然找不到对应的key,删除操作等于无效执行。

修正代码

移除拼接jobName时手动添加的双引号,同时注意Redis操作是异步的,建议加上await确保操作完成:

const { queue } = job as unknown as Job;
// 直接拼接各部分,不要加额外的双引号
const jobName = `${(queue as unknown as any).keyPrefix}:${queue.name}:${job.id}`;
MtPromotionProcessor.loggerService.info(`Removing ${jobName} key from redis`);
// 异步操作需等待完成,确保在async函数中使用await
await redisClient.del(jobName);

额外验证

修正后可以在日志里看到输出变成Removing bull:mt-queue:4 key from redis,此时再检查Redis,对应的key就会被正确删除。

内容的提问来源于stack exchange,提问作者Danyal Sandeelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 10:01:06