Redis 中的 Lua 脚本

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

在文档中提到“执行脚本时,所有服务器活动在其整个运行期间都会被阻止。

  1. 这是否意味着在Redis中执行Lua脚本时所有 其他操作,例如来自客户端的命令(Redis 客户端来自 .NET)也被阻止了?

  2. 如果在特定的Key上创建了任何RedLock(使用RedLock.net)并且如果有Lua 触发脚本也会修改相同的Key,这会产生什么影响?

  3. 由于函数和触发器没有移至 GA,Redis 中是否有其他替代方案 以设定的频率执行某些Lua脚本

redis redlock.net
1个回答
0
投票
  1. 运行脚本的 Redis 实例将无法执行任何其他命令,这包括来自其他客户端的命令(例如您的 .NET Redis 客户端),对此的唯一覆盖将类似于
    SCRIPT KILL
  2. RedLock 是一种设计模式,旨在为 Redis 实例提供分布式锁定。像对待任何其他信号量一样对待它,一旦获得,关键代码(或在本例中为键)不应该被任何尚未获得它们的客户端触及。如果您违反该约定,您可能会遇到竞争条件。
  3. 不是 Redis 内部的,但您始终可以运行 cron 作业来定期执行脚本或函数。
© www.soinside.com 2019 - 2024. All rights reserved.