2016-08-02 12 views
0

Documentation besagt, dass Schlüssel explizit übergeben werden müssen, wenn der Redis-Cluster verwendet wird, kann der Befehl an den entsprechenden Knoten weitergeleitet werden.Generieren neuer Schlüssel in EVALSHA

Aber gilt dies auch für neue Schlüssel? Wenn ich zum Beispiel ein Skript habe, um eine neue Entität zu registrieren, und ein solches Skript dynamisch einen völlig neuen Schlüssel erstellt, der aus dem Ergebnis von INCR und einem Literal besteht, wäre das ein Problem für Redis-Cluster?

Die Alternative wäre, INCR in einer separaten Operation aufzurufen und den Schlüssel an das Skript als KEY [1] zu übergeben.

Antwort

1

Wenn Sie sorgfältig darauf achten, dass Ihr neuer Schlüssel auf denselben Server wie Ihre anderen Schlüssel übertragen wird, denke ich, dass es Ihnen gut geht.

Das Wichtigste bei Cluster ist nicht nur, dass Sie Ihre Schlüssel im Voraus deklarieren, sondern auch sicherstellen, dass sich alle Schlüssel, auf denen das Skript ausgeführt wird, auf demselben Server befinden. Sie können das mit Ihren Schlüsseln tun, indem Sie hash tags verwenden. Wenn Sie Ihren neuen Schlüssel so erstellen, dass er auf den gleichen Slot wie Ihre anderen hashed, denke ich, dass es gut funktionieren wird.

+0

Danke! Also, wenn ich den Schlüssel, der die IDs wie '{product:} ids' enthält, an das Skript weiterleiten und dann einen Schlüssel innerhalb des Skripts namens '{product:} 1 'erzeugen, ist es sicher? – vtortola

+0

@vtortola: Ja, ich glaube schon. –