Redis
 sql >> Database >  >> NoSQL >> Redis

Perché il mio script Redis Lua non può aggiornare atomicamente le chiavi su diversi nodi Redis Cluster?

Temo tu abbia frainteso la documentazione. (E sono d'accordo che non è molto chiaro.)

Le operazioni Redis, che si tratti di comandi o script Lua, possono funzionare solo quando tutte le chiavi si trovano sullo stesso server. Lo scopo della regola di passaggio delle chiavi è consentire ai server Cluster di capire dove inviare lo script e fallire rapidamente se tutte le chiavi non provengono dallo stesso server (come è successo nel tuo caso).

Quindi è tua responsabilità assicurarti che tutte le chiavi su cui vuoi operare si trovino sullo stesso server. Il modo per farlo è usare tag hash per forzare l'hash delle chiavi nello stesso slot. Consulta la documentazione per maggiori dettagli al riguardo.