使用@redis/json库存储JSON对象时遇redisClient.json未定义问题求助
解决redisClient.json未定义的问题
核心原因
默认的Redis客户端实例并未内置JSON相关命令,需要手动导入并注册@redis/json提供的命令集。
步骤1:安装正确依赖
需同时安装核心客户端和JSON扩展插件,执行命令:
npm install @redis/client @redis/json
步骤2:注册JSON命令到客户端
修改代码,导入JSONCommands并添加到客户端实例中,这是解决问题的关键:
const { createClient } = require('@redis/client'); const { JSONCommands } = require('@redis/json'); async function setupRedis() { const redisClient = createClient({ url: `redis://${redis.host}:${redis.port}`, }); // 注册JSON命令集 redisClient.addCommand(JSONCommands); await redisClient.connect(); // 现在可正常调用json.set方法 await redisClient.json.set('demo:data', '$', { name: 'test', count: 5 }); // 验证读取结果 const data = await redisClient.json.get('demo:data'); console.log(data); await redisClient.disconnect(); } setupRedis().catch(err => console.error(err));
额外注意事项
- 确保
@redis/client与@redis/json版本一致,避免版本不兼容引发异常 - 若使用ES模块(import语法),只需将require替换为import,注册命令的逻辑保持不变
内容的提问来源于stack exchange,提问作者omer727
相关产品推荐
相关产品推荐

