使用AWS ElastiCache Redis时报错unknown command `config`求助
问题根因
AWS ElastiCache禁用了CONFIG命令,你的Node.js Redis客户端主动发送了CONFIG SET notify-keyspace-events AKE请求触发报错,同时你没有监听Redis客户端的error事件,导致错误未捕获直接终止进程。
解决方案
- 删除客户端侧的CONFIG配置逻辑
你已经在AWS ElastiCache参数组中完成了notify-keyspace-events的配置,不需要再通过客户端修改该参数,找到代码中所有调用CONFIG SET相关的代码直接删除即可。 - 添加Redis客户端错误监听
给Redis订阅客户端添加error事件监听,避免未捕获的错误直接导致进程崩溃,修改后的代码参考如下:
const sub = redis.createClient({ host: process.env.REDIS_HOST, port: Number(process.env.REDIS_PORT), db: Number(process.env.REDIS_INDEX), // 保留你原有其他配置 }); // 新增错误监听逻辑 sub.on('error', (err) => { console.error('Redis订阅客户端异常:', err); }); export const subscribe = async (channel: string) => { try { sub.subscribe(channel); console.log(`subscribed to channel ===> ${channel}`); return {}; } catch (error) { console.log("订阅频道出错", error); return {} } }
- 验证服务端配置生效
你可以在EC2实例上通过redis-cli连接新建的ElastiCache实例,执行命令CONFIG GET notify-keyspace-events,确认返回值为AKE即可验证服务端配置已经生效。
内容的提问来源于stack exchange,提问作者Radheya
相关产品推荐
相关产品推荐

