【发布时间】:2017-10-17 15:21:06
【问题描述】:
我编写了以下 Lambda 函数:
exports.handler = (event, context, callback) => {
const redis = require('redis');
const redis_client = redis.createClient({
host: 'hostname',
port: 6379
});
redis_client.set("foo", "bar");
redis_client.get("foo", function(err, reply) {
redis_client.quit();
callback(null, reply);
});
};
这很好用。但是,我想在 Lambda 调用之间重用 Redis 连接来提高性能。理论上,这可以通过将 createClient() 移到处理程序之外来实现。但是,由于“redis_client.quit()”行,该连接被终止。如果我不退出客户端,Lambda 函数将会超时。
在使用 AWS Lambda 时,在 NodeJS 中重用 Redis 的正确方法是什么?
【问题讨论】:
-
看看context.callbackWaitsForEmptyEventLoop,它还有其他缺点,但你的 lambda 不应该超时。
redis.createClient花了多少时间?