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

我正在使用Node.js和一个Redis数据库。 我是Redis的新手。

我正在使用节点的https://github.com/mranney/node_redis驱动程序。

初始化代码 –

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

我尝试设置一些关键值对 –

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

我想知道我可以通过节点从Redis获取名称参数。

我试过了

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

但它只是作为输出返回“真”。 我想要的价值(即 – 杰克)什么是我需要使用的声明?

这是你应该这样做的:

 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中的callback和闭包的概念,然后了解node.js的asynchronous本质。 正如你所看到的,你传递一个函数(callback或者closure)函数给hget。 一旦redis客户端从服务器获取结果,这个函数就会被调用。 如果有的话,第一个参数将是一个错误对象,否则第一个参数将是空的。 第二个论据将会保持结果。

我find了答案 –

获取值需要callback函数。

 client.hget("users:123", "name", function (err, reply) { console.log(reply.toString()); });