14

我正在使用 Node.js 和 Redis Database 。我是 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'

但它只是返回“真”作为输出。我想要值(即-Jack) 我需要使用什么语句?

4

2 回答 2

24

你应该这样做:

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 客户端从服务器检索到结果,就会调用此函数。如果发生错误,第一个参数将是一个错误对象,否则第一个参数将为空。第二个参数将保存结果。

于 2012-05-14T14:06:34.080 回答
0

我找到了答案——

获取值需要回调函数。

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

    console.log(reply.toString());

    });
于 2012-05-14T14:03:17.833 回答