使用@redis/json节点库存储json对象

fnvucqvd  于 2023-08-02  发布在  Redis
关注(0)|答案(2)|浏览(129)

我尝试使用“@redis/json”库在Redis中设置json对象。

const redisClient = await createClient({
                url: `redis://${redis.host}:${redis.port}`,                
            });
            await redisClient.connect();
            redisClient.json.set()  //getting json undefined  error

字符串
但是redisClient无法识别json对象。文件不清楚

dced5bon

dced5bon1#

文档肯定需要工作,这是我们正在投入时间的事情。这里有几个示例脚本,我们尝试使用所有新功能来保持最新:
https://github.com/redis/node-redis/tree/master/examples
下面是如何使用JSON命令的示例:
https://github.com/redis/node-redis/blob/master/examples/managing-json.js
你的代码看起来不错,你不需要awaitcreateClient调用。
下面是一个基本的工作示例:
产出:

$ node index.js
{
  hello: 'world',
  nums: [ 0, 1, 2, 3 ],
  obj: { hello: 'there', age: 99 }
}

字符串
package.json:

{
  "name": "nrjson",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Simon Prickett",
  "license": "MIT",
  "dependencies": {
    "redis": "^4.6.7"
  }
}


index.js:

import { createClient } from 'redis';

const client = createClient();

await client.connect();
await client.del('noderedis:jsondata');

// Store a JSON object...
await client.json.set('noderedis:jsondata', '$', {
  hello: "world",
  nums: [ 0, 1, 2, 3],
  obj: {
    "hello": "there",
    "age": 99
  }
});

// And retrieve it....
console.log(await client.json.get('noderedis:jsondata', '$'));

await client.quit();

fzsnzjdm

fzsnzjdm2#

@Simon在安装整个'redis'库时回答正确。当仅导入@redis/client + @redis/json时,此答案有效

import { createClient } from '@redis/client';
import RedisJsonModule from '@redis/json';

const redisClient = createClient({
            url: `redis://${redisConfig.host}:${redisConfig.port}`,
            socket: { tls: true },
            modules: { json: RedisJsonModule },
        });
await redisClient.connect();

字符串
如果你使用的是typescript,redisClient的类型是RedisClientType<{ json:typeof RedisJsonModule },RedisFunctions,RedisScripts>

相关问题