node.js - Redis 在 nodejs 中太慢?

标签 node.js redis

在 nodejs 上使用 connect-redis 太慢了。当我将 connect-redis 连接到应用程序时性能下降

const RedisStore = require('connect-redis')(session);
...
app1.use(session({
  store: new RedisStore(
    config.redisStore
  ),
  secret: 'asd',
  resave: false,
  rolling: true, 
  saveUninitialized: false,
  cookie: {
    maxAge: config.redisStore.maxAge,
    httpOnly:false,
  },
}));

如果我在 apache bench 上的应用程序中没有这段代码,我每秒大约有 3600 个请求。使用它的代码 - 大约 2500。nodejs 中的测试路由仅发送“OK”

为什么只创建 RedisStore 的“实例”会导致性能下降?

在应用中我不直接使用redistore

最佳答案

我建议你使用 ioredis npm ( https://www.npmjs.com/package/ioredis )

如果要发送一批命令(例如> 5),可以使用流水线将命令在内存中排队,然后一次性发送到Redis。这样性能提升了50%~300%。

关于node.js - Redis 在 nodejs 中太慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718163/

相关文章:

javascript - 使用 Node.js 和 Tedious 插入多条记录

node.js - 无法识别环境变量的 TypeScript 声明

elasticsearch - Logstash - ElasticSearch - Kibana::延迟 10 秒或更长时间

redis - 查看保存到 redis 哈希中的列表

php - 当用户遇到异常情况时注销用户

node.js - 如何使用 async.parallelLimit 来最大化(并行)运行进程的数量?

xml - NodeJS xpath 库是否支持 XPath 查询表达式?

javascript - Mac Node-webkit 菜单

redis更新具有相同值和ttl的键

javascript - 生成具有易于区分的类型/组的实体 ID