Как выполнить команду HGET/GET для базы данных Redis через узел.Яш?

Я использую Node.js и база данных Redis . Я новичок в Redis .

Я использую https://github.com/mranney/node_redis драйвер для узла.

код инициализации -

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

Я пытался создать какой-то пары ключ-значение -

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

Я хочу знать, что могу получить параметр name из Redis через узел .

пробовал

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

но он просто возвращает "true" в качестве вывода. Мне нужна ценность. ( я.э - Джек ) Какое утверждение мне нужно использовать ?

2 ответов


вот как вы должны это сделать:

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, а затем асинхронный характер узла.js. Как вы можете видеть, вы передаете функцию (обратный вызов или закрытие) функции hget. Эта функция вызывается, как только клиент redis извлек результат с сервера. Первый аргумент будет объектом ошибки, если таковой имеется, в противном случае первый аргумент будет нулевым. Второй аргумент будет иметь силу результат.


Я нашел ответ -

для получения значений необходима функция обратного вызова .

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

    console.log(reply.toString());

    });