2016-08-02 22 views
0

Documentation表明密鑰必須明確傳遞,因此如果使用Redis集羣,則可以將該命令轉發到適當的節點。在EVALSHA內部生成新密鑰

但是,這是否也適用於新密鑰?例如,如果我有一個腳本來註冊一個新的實體,並且這個腳本動態創建一個由INCR的結果和一個文字組成的全新密鑰,那麼這對Redis集羣來說會是一個問題嗎?

另一種方法是在單獨的操作中調用INCR並將密鑰作爲KEY [1]傳遞給腳本。

回答

1

如果你小心確保你的新密鑰與其他密鑰散列在同一臺服務器上,我認爲你會沒事的。

也就是說,Cluster的重要之處不僅僅是預先聲明您的密鑰,還要確保腳本運行的所有密鑰位於同一臺服務器上。您可以使用hash tags與您的密鑰做到這一點。如果你構造新密鑰的方式與其他密鑰相同,我認爲它可以正常工作。

+0

謝謝!因此,如果我將腳本傳遞給腳本,該腳本包含'{product:} ids'這樣的ID,然後在名爲'{product:} 1'的腳本中生成一個鍵,那麼它會安全嗎? – vtortola

+0

@vtortola:是的,我相信。 –