redis中的快速hmset会产生空哈希

时间:2014-11-26 15:46:33

标签: node.js redis

我为node应用编写了一个加载测试程序。我的节点应用使用redis作为后端,在我的应用的不同群集(亚马逊实例)之间共享信息。

当我达到100个请求/秒时,以下代码会生成null

redisClient.hmset("visitor:" + userID.toString() + ":" + channel.toString(), {
    "channel": channel.toString(),
    "clusterID": Config.clusterID,              
    "name": randomName.toString()               
});

当我尝试查看hgetall上的内容时:

"visitor:" + userID.toString() + ":" + channel.toString()

内容为null

任何想法如何发生这种情况? 请注意,这仅在达到每秒100次或更多请求后才会发生。

对于我的redis服务器,我正在使用ElastiCache一个t1.micro实例

1 个答案:

答案 0 :(得分:1)

你在等待hmset的回调吗?

应该是

var key = "visitor:" + userID.toString() + ":" + channel.toString();
redisClient.hmset(key, {
    "channel": channel.toString(),
    "clusterID": Config.clusterID,              
    "name": randomName.toString()               
}, function(err) {

    redisClient.hgetall(key, function(err, data) {
        console.log(data);
    });    
});