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

Hvorfor kan mit Redis Lua-script ikke atomisk opdatere nøgler på forskellige Redis Cluster-noder?

Jeg er bange for, at du har misforstået dokumentationen. (Og jeg er enig i, at det ikke er særlig tydeligt.)

Redis-operationer, uanset om det er kommandoer eller Lua-scripts, kan kun fungere, når alle nøglerne er på den samme server. Formålet med nøgleoverførselsreglen er at give Cluster-servere mulighed for at finde ud af, hvor de skal sende scriptet og fejle hurtigt, hvis alle nøglerne ikke kommer fra den samme server (hvilket er, hvad der skete i dit tilfælde).

Så det er dit ansvar at sørge for, at alle de nøgler, du vil operere på, er placeret på den samme server. Måden at gøre det på er at bruge hash-tags for at tvinge nøgler til at hash til samme slot. Se dokumentationen for flere detaljer om det.




  1. Opdater en værdi i MongoDB baseret på dens aktuelle værdi

  2. Bruger du JSON med MongoDB?

  3. Sådan opdaterer du eksisterende dokumenter i MongoDB

  4. Hvordan bruger jeg forbindelsespuljer korrekt i redis?