2013-10-25 56 views
0

我想在Node.js中使用Redis。我做错了什么......我无法理解它。无法在Redis中的Node.js中设置密钥

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

client.on("error", function (err) { 
    console.log("error event - " + client.host + ":" + client.port + " - " + err); 
}); 

/* first attempt */ 
console.log('first attempt'); 

var before = client.get("test"); 
console.log(before); 

if(client.exists("test")) { 
    console.log("The value exists"); 
} else { 
    console.log("The value doesn't exists"); 
    client.set("test","koen"); 
} 

var after = client.get("test"); 
console.log(after); 

/* second attempt */ 
console.log('--------------'); 
console.log('second attempt'); 

var before = client.get("test"); 
console.log(before); 

if(client.exists("test")) { 
    console.log("The value exists"); 
} else { 
    console.log("The value doesn't exists"); 
    client.set("test","koen"); 
} 

var after = client.get("test"); 
console.log(after); 

我不能设置任何按键...以下是显示在控制台:

first attempt 
false 
The value doesn't exists 
false 
-------------- 
second attempt 
false 
The value doesn't exists 
false 

回答

1

client.set()不同步。您需要提供回调作为最后一个参数,此时您的密钥将被设置。

1

下面是一个例子,如何设置和获取“测试”:

client.set("test", "koen", function (err, res) { 
    console.log("set: ", res) 

    client.get("test", function (err, res) { 
    console.log("get: ", res); 
    }); 

}); 

请记住,所有你的电话必须是异步的。