Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Warum kann mein Redis Lua-Skript Schlüssel auf verschiedenen Redis-Cluster-Knoten nicht atomar aktualisieren?

Ich fürchte, Sie haben die Dokumentation falsch verstanden. (Und ich stimme zu, dass es nicht sehr klar ist.)

Redis-Operationen, ob Befehle oder Lua-Skripte, können nur funktionieren, wenn sich alle Schlüssel auf demselben Server befinden. Der Zweck der Schlüsselübergaberegel besteht darin, Cluster-Servern zu ermöglichen, herauszufinden, wohin das Skript gesendet werden soll, und schnell zu scheitern, wenn nicht alle Schlüssel vom selben Server stammen (was in Ihrem Fall passiert ist).

Es liegt also in Ihrer Verantwortung, sicherzustellen, dass sich alle Schlüssel, auf denen Sie arbeiten möchten, auf demselben Server befinden. Dazu verwenden Sie Hash-Tags um Schlüssel zum Hashen in denselben Steckplatz zu zwingen. Weitere Einzelheiten hierzu finden Sie in der Dokumentation.