node.js - redis 中的快速 hmset 产生空哈希

标签 node.js redis

我已经为我的 node 应用编写了一个负载测试器。我的 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 实例

最佳答案

您是否正在等待 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);
    });    
});

关于node.js - redis 中的快速 hmset 产生空哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153322/

相关文章:

javascript - Node.js Express POST 请求未获取参数

javascript - 使用本地模块,使用本地依赖

Redis-Sentinel with Redis 其CONFIG命令被重命名

c - Redis添加 `dict`时地址边界错误如何解决?

redis - redis 是否串行处理命令?

Redis "evicted_keys"用途

javascript - 使用 node.js 编辑和创建 HTML 内容

node.js - 使用 Vue.js 显示单个项目

Redis block 推送直到列表有空位

node.js - Mongoose 和 connect-mongo