我为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
实例
答案 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);
});
});