sql >> Database >  >> NoSQL >> Redis

Waarom kan mijn Redis Lua-script de sleutels op verschillende Redis Cluster-knooppunten niet atomair bijwerken?

Ik ben bang dat je de documentatie verkeerd hebt begrepen. (En ik ben het ermee eens dat het niet erg duidelijk is.)

Redis-bewerkingen, of het nu commando's of Lua-scripts zijn, kunnen alleen werken als alle sleutels zich op dezelfde server bevinden. Het doel van de regel voor het doorgeven van sleutels is om Cluster-servers in staat te stellen erachter te komen waar het script naartoe moet worden gestuurd en om snel te falen als alle sleutels niet van dezelfde server komen (wat in uw geval is gebeurd).

Het is dus uw verantwoordelijkheid om ervoor te zorgen dat alle sleutels waarmee u wilt werken zich op dezelfde server bevinden. De manier om dat te doen is door hashtags te gebruiken om sleutels te forceren om naar hetzelfde slot te hashen. Zie de documentatie voor meer details hierover.




  1. Mongo kan niet starten

  2. MongoDB mongorestore en bestaande collectie met records

  3. Transparante database-failover voor uw toepassingen

  4. Hoe MongoDB rechtstreeks vanuit Ruby opvragen in plaats van Mongoid te gebruiken?