StackExchange Redis客户端在使用lua时如何知道调用哪个集群节点?

How does StackExchange Redis client know which cluster node to call when using lua?

如果我理解正确,当调用类似 GET abc{def}ghi 的东西时,Redis 客户端计算 def 的散列,将其乘以 16384,然后将请求直接发送到负责处理这个特定的集群节点space.

的一部分

我想知道,如果 Lua 脚本不清楚它将使用哪些键,这将如何工作? (我假设脚本会表现良好,并且只查询来自同一个存储桶的键。)Redis 客户端,特别是 StackExchange.Redis,在这种情况下会做什么?

如果您向脚本发送密钥,它将照常计算密钥上的哈希槽,并在拥有该哈希槽的服务器上执行脚本。

向脚本发送多个键时,所有键都应映射到同一个插槽(否则您将收到 RedisCommandException)。 如果您不将密钥传递给脚本,它将使用随机服务器。

Marc Gravell 可以确认这是否正确。