CROSSSLOT: CROSSSLOT Keys in request don't hash to the same slot (Schlüssel der Anfrage liegen nicht im selben Slot)
RedisWas bedeutet das?
In Redis Cluster wurde ein Multi-Key-Befehl (z. B. MGET, MSET, SUNION) verwendet, aber die Schlüssel fallen in unterschiedliche Hash Slots. Multi-Key-Operationen erfordern, dass alle Schlüssel im selben Slot liegen.
Ursache
Im Cluster-Modus werden Befehle, die mehrere Schlüssel gleichzeitig ansprechen, mit über verschiedene Slots verteilten Schlüsseln aufgerufen. Die Schlüssel werden auf verschiedene Knoten verteilt, weil sie keinen Hash Tag verwenden.
Lösung
Verwende einen Hash Tag, um zusammengehörige Schlüssel in denselben Slot zu legen: Fixiere einen Teil des Schlüsselnamens mit geschweiften Klammern (z. B. landen {user1}:profile und {user1}:settings im selben Slot). Verwende Multi-Key-Befehle nur mit Schlüsseln, die denselben Hash Tag teilen. Alternativ teile Operationen in Single-Key-Befehle auf.
Weitere Einträge zu dieser Datenbank
- LOADINGLOADING Redis is loading the dataset in memory (Redis lädt das Dataset in den Speicher)
- BUSYBUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE (Redis ist mit einem Skript beschäftigt)
- MISCONFMISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk (RDB-Snapshots konfiguriert, Schreiben auf Disk derzeit nicht möglich)
- MOVEDMOVED slot ip:port (Cluster-Umleitung)
- ASKASK slot ip:port (Cluster-Umleitung)
- NOSCRIPTNOSCRIPT No matching script. Please use EVAL (kein passendes Skript; EVAL verwenden)
- EXECABORTEXECABORT Transaction discarded because of previous errors (Transaktion wegen vorheriger Fehler verworfen)