Как выполнить команду 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());
});