AWS Lambda 中的 Redis 实例重用

问题描述 投票:0回答:1

问题:

我在 AWS Lambda 函数中使用 Redis 作为缓存数据库,并且我有一个关于在不同 Lambda 调用中重用相同 Redis 客户端实例时 Redis 如何在幕后工作的问题。

我使用单个 Redis 客户端实例来避免每次调用 Lambda 函数时创建新连接。我担心的是同时调用多个 Lambda 实例时潜在的副作用。

场景:

  • Lambda 1 使用
    multi/exec
    命令启动并启动多个 Redis 操作。
  • 同时,调用 Lambda 2 并使用相同的 Redis 客户端实例执行简单的 Redis
    add
    操作。
  • 如果 Lambda 2 完成操作,而 Lambda 1 调用
    discard
    ,那么 Lambda 1 中的
    discard
    命令会影响 Lambda 2 中的 Redis 操作吗?

我的问题:

  1. 在不同的 Lambda 调用中重用相同的 Redis 客户端实例是否会导致这些调用的操作之间存在任何干扰,因为它们共享相同的实例连接?
  2. 我是否应该为每个 Lambda 调用创建一个新的 Redis 客户端实例以避免潜在的冲突?
database amazon-web-services aws-lambda redis
1个回答
0
投票

不,您不需要为每个 lambda 调用使用单独的 Redis 实例,因为,

  • Redis 是单线程的。这意味着它将一次执行一个命令。看起来您可能同时运行两个或多个命令,但它们会一个接一个地执行。
  • 正如这里提到的 Redis 事务是原子的,这意味着所有命令都将是 作为单个操作执行,如果任何命令失败,它将 回滚整个事务。
© www.soinside.com 2019 - 2024. All rights reserved.