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 可以确认这是否正确。
如果我理解正确,当调用类似 GET abc{def}ghi
的东西时,Redis 客户端计算 def
的散列,将其乘以 16384,然后将请求直接发送到负责处理这个特定的集群节点space.
我想知道,如果 Lua 脚本不清楚它将使用哪些键,这将如何工作? (我假设脚本会表现良好,并且只查询来自同一个存储桶的键。)Redis 客户端,特别是 StackExchange.Redis
,在这种情况下会做什么?
如果您向脚本发送密钥,它将照常计算密钥上的哈希槽,并在拥有该哈希槽的服务器上执行脚本。
向脚本发送多个键时,所有键都应映射到同一个插槽(否则您将收到 RedisCommandException
)。
如果您不将密钥传递给脚本,它将使用随机服务器。
Marc Gravell 可以确认这是否正确。