如何在Azure函数中使用Javascript存储和检索Redis中的值

r55awzrz  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(129)

我尝试在Azure函数中连接到Redis,但是我遇到了超时问题,但相同的代码在普通JS中运行良好。在Azure函数中连接Redis的理想方式是什么?一旦函数执行,应该如何断开连接?

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {

const str = generateString();
if (context.req.method === 'POST') {
    const redisClient = createClient({ password: process.env['DB_PASSWORD'], socket: { host: process.env['DB_URL'], port: Number(process.env['DB_PORT']) } });
    redisClient.on("error", (error) => console.error(`Error : ${error}`));
    await redisClient.connect();

    await redisClient.setEx("str", 600, str);
    context.res.headers['content-type'] = 'application/json'
    context.res = {
        headers: {
            'Content-Type': 'application/json; charset=utf-8'
        },
        body: {
            str
        }
    };
}

};

oaxa6hgo

oaxa6hgo1#

  • 在Azure中创建Redis缓存,并按以下方式选择资源组:

  • 现在在JavaScript中创建一个http触发器函数,如下所示:

  • 现在,创建http触发器后,使用以下命令连接Azure Redis缓存:

  • 在概述中的键下,从Azure缓存中替换以下命令中的主机、端口:

  • 代码:
const redis = require("redis");

module.exports = async function (context, req) {
  const client = redis.createClient({
    host: "your.redis.cache.windows.net",
    port: ***,
    password: "***",
    tls: { servername: "your.redis.cache.windows.net" },
  });

我试过你给的代码它会在10分钟内断开连接,你必须在这个时间限制内检索数据.

  • 我已经执行并获得了如下连接输出:

  • 现在,您可以使用以下命令断开连接:client.quit(); // This is the command to disconnect

相关问题