Не могу SET/GET с NodeJS и Redis
Я хочу написать Redis-Handler ueberDB для моего Etherpad.
Я абсолютно не понимаю мою проблему, потому что с PHP я могу установить и получить ключ / значения без каких-либо проблем. Это только не работает с NodeJS.
Вот пример кода:
var redis = require("redis");
client = redis.createClient();
client.on("error", function (err) {
console.log("Error " + err);
});
client.set("test", "string val", redis.print);
console.log(client.get("test"));
Что я не прав? Может быть, у кого-то есть совет для меня.
2 ответа
Во-первых, вам нужно знать, подключен ли ваш Redis-клиент. Вы можете проверить с console.log(клиент), и вы увидите varaible под названием "подключен". Вы должны увидеть "правда"
Если вы хотите использовать Redis в узле, вы должны использовать что-то вроде этого
client.set("test","val", function(err) {
if (err) {
// Something went wrong
console.error("error");
} else {
client.get("test", function(err, value) {
if (err) {
console.error("error");
} else {
console.log("Worked: " + value);
}
});
}
});
Имейте в виду, что все функции redis являются асинхронными.
Если это не очевидно из принятого ответа, причина того, что опубликованный код не работает, связана с асинхронностью.
Вы вызываете get() до завершения set().