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