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

如果我理解正确的话,当调用类似于 GET abc{def}ghi 的内容时,Redis客户端会计算 def 的哈希值,将其对16384取模,然后直接向负责处理此特定空间部分的集群节点发送请求。

我想知道,在Lua脚本的情况下,它如何工作,因为它不清楚它将使用哪些密钥?(我假设脚本将表现良好,并且仅查询同一桶中的密钥。)在这种情况下,Redis客户端,特别是 StackExchange.Redis,会怎么做?

点赞
用户122195
用户122195

如果你把一个键传输到脚本中,它会像往常一样计算键的哈希槽,然后在拥有该哈希槽的服务器上执行脚本。

当向脚本发送多个键时,所有键都应该映射到同一个槽中(否则会收到RedisCommandException异常)。 如果没有传递键到脚本中,它会在一个随机的服务器上执行。

Marc Gravell可以确认是否正确。

2015-11-23 22:40:16