2016-08-02 24 views
0

Documentation表明密钥必须明确传递,因此如果使用Redis集群,则可以将该命令转发到适当的节点。在EVALSHA内部生成新密钥

但是,这是否也适用于新密钥?例如,如果我有一个脚本来注册一个新的实体,并且这个脚本动态创建一个由INCR的结果和一个文字组成的全新密钥,那么这对Redis集群来说会是一个问题吗?

另一种方法是在单独的操作中调用INCR并将密钥作为KEY [1]传递给脚本。

回答

1

如果你小心确保你的新密钥与其他密钥散列在同一台服务器上,我认为你会没事的。

也就是说,Cluster的重要之处不仅仅是预先声明您的密钥,还要确保脚本运行的所有密钥位于同一台服务器上。您可以使用hash tags与您的密钥做到这一点。如果你构造新密钥的方式与其他密钥相同,我认为它可以正常工作。

+0

谢谢!因此,如果我将脚本传递给脚本,该脚本包含'{product:} ids'这样的ID,然后在名为'{product:} 1'的脚本中生成一个键,那么它会安全吗? – vtortola

+0

@vtortola:是的,我相信。 –