Redis
 sql >> Base de données >  >> NoSQL >> Redis

Pourquoi mon script Redis Lua ne peut-il pas mettre à jour de manière atomique les clés sur différents nœuds de cluster Redis ?

Je crains que vous n'ayez mal compris la documentation. (Et je suis d'accord que ce n'est pas très clair.)

Les opérations Redis, qu'il s'agisse de commandes ou de scripts Lua, ne peuvent fonctionner que lorsque toutes les clés sont sur le même serveur. Le but de la règle de transmission de clé est de permettre aux serveurs de cluster de déterminer où envoyer le script et d'échouer rapidement si toutes les clés ne proviennent pas du même serveur (ce qui s'est passé dans votre cas).

Il est donc de votre responsabilité de vous assurer que toutes les clés sur lesquelles vous souhaitez opérer se trouvent sur le même serveur. La façon de le faire est d'utiliser des balises de hachage pour forcer les clés à hacher au même emplacement. Voir la documentation pour plus de détails à ce sujet.