Azure Redis 与 Lua 脚本用于读取/比较/写入

我有一个非常简单的使用案例。 我有多个并行运行的 Azure Logic Apps 实例,每个 Logic App 调用一个 Azure 函数来确定当前消息是否需要被处理。 Azure 函数读取 Redis 缓存中的条目,并将其与来自 Logic App 当前处理的消息的值进行比较。

如果消息中的值大于缓存中存储的值(或者值不存在于缓存中),则覆盖缓存中的值,并且函数返回“true”来指示消息必须被处理。

如果缓存中的值大于或等于消息的值,则函数返回“False”,并且 Logic App 忽略该消息。

因为我可以有很多并行运行的 Logic App,所以我想避免以下情况:Azure 函数从缓存中读取该值,然后进行比较,而在比较期间,另一个 Azure 函数覆盖了缓存中的值。并且我不想限制同时运行的并发 Azure 函数的数量,因为我需要并行处理很多消息。

在这种情况下,我应该使用“Lua”执行读取/比较和写入操作,并进行单个和原子事务吗?

点赞