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

时间:2012-05-14 13:41:53

标签: database node.js redis

我正在使用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'作为输出。我想要的价值(即杰克) 我需要使用的声明是什么?

2 个答案:

答案 0 :(得分:22)

这是你应该怎么做的:

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客户端从服务器检索结果,就会调用此函数。如果有的话,第一个参数将是一个错误对象,否则第一个参数将为null。第二个论点将保留结果。

答案 1 :(得分:0)

我找到了答案 -

获取值需要回调函数。

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

    console.log(reply.toString());

    });