如何通过Node.js向Redis数据库发出HGET/GET命令?

3pvhb19x  于 2023-02-21  发布在  Redis
关注(0)|答案(3)|浏览(255)

我正在使用Node.js和Redis数据库。我是Redis的新手。
我正在使用节点的https://github.com/mranney/node_redis驱动程序。
初始化代码-

var redis = require("redis"),
client = redis.createClient();

我试着设置了一些键值对-

client.hset("users:123" ,"name", "Jack");

我想知道我可以通过Node从Redis获得name参数。
我试过了

var name = client.hget("users:123", "name");  //returns 'true'

但它只返回'true'作为输出。我想要的值(i.e-jack)我需要使用的语句是什么?

vm0i2vca

vm0i2vca1#

你应该这样做:

client.hset("users:123", "name", "Jack");
// returns the complete hash
client.hgetall("users:123", function (err, obj) {
   console.dir(obj);
});

// OR

// just returns the name of the hash
client.hget("users:123", "name", function (err, obj) {
   console.dir(obj);
});

还要确保理解JavaScript中回调和闭包的概念以及node.js的异步特性。(回调或闭包)到hget。当redis客户端从服务器检索到结果时,该函数被调用。如果发生错误,第一个参数将是一个error对象。否则第一个参数将为空。2第二个参数将保存结果。

a2mppw5e

a2mppw5e2#

我找到了答案-
需要一个回调函数来获取这些值。

client.hget("users:123", "name", function (err, reply) {

    console.log(reply.toString());

    });
r7knjye2

r7knjye23#

如果你使用的是redis version 4.X +,那么就不需要回调了。所有的方法,比如get(),hget()等等,都会返回一个promise。

相关问题