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

gee*_*ter 14 database redis node.js

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

我使用https://github.com/mranney/node_redis驱动程序作为节点.

初始化代码 -

var redis = require("redis"),
client = redis.createClient();
Run Code Online (Sandbox Code Playgroud)

我尝试设置一些键值对 -

client.hset("users:123" ,"name", "Jack");
Run Code Online (Sandbox Code Playgroud)

我想知道我可以通过Node从Redis获取name参数.

我试过了

var name = client.hget("users:123", "name");  //returns 'true'
Run Code Online (Sandbox Code Playgroud)

但它只是返回'true'作为输出.我想要价值(即 - 杰克)我需要使用的声明是什么?

Tho*_*itz 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);
});
Run Code Online (Sandbox Code Playgroud)

还要确保你理解javascript中回调和闭包的概念,然后了解node.js的异步性质.如您所见,您将函数(回调或闭包)函数传递给hget.一旦redis客户端从服务器检索结果,就会调用此函数.如果有的话,第一个参数将是一个错误对象,否则第一个参数将为null.第二个论点将保留结果.