NOSCRIPT: NOSCRIPT No matching script. Please use EVAL (aucun script correspondant)
RedisQue signifie cette erreur ?
Le condensé SHA1 du script Lua appelé avec EVALSHA est introuvable dans le cache de scripts du serveur. Redis ne connaît aucun script correspondant à ce hash.
Cause
Le serveur a été redémarré ou le cache de scripts a été vidé avec SCRIPT FLUSH, le script n'a jamais été chargé, ou le cache est vide sur le nouveau nœud après un failover.
Comment la corriger
Exécutez le script avec son corps complet via EVAL (Redis le met automatiquement en cache), ou chargez-le d'abord avec SCRIPT LOAD et utilisez le SHA renvoyé dans EVALSHA. Dans l'application, interceptez l'erreur NOSCRIPT et implémentez une logique de repli d'EVALSHA vers EVAL. De nombreuses bibliothèques clientes Redis le font automatiquement.
Autres entrées pour ce moteur
- CROSSSLOTCROSSSLOT Keys in request don't hash to the same slot (les clés de la requête ne sont pas dans le même slot)
- MOVEDMOVED slot ip:port (redirection du cluster)
- ASKASK slot ip:port (redirection du cluster)
- EXECABORTEXECABORT Transaction discarded because of previous errors (transaction abandonnée en raison d'erreurs précédentes)
- NOPERMNOPERM this user has no permissions to run the command or access one of the keys (l'utilisateur n'a pas l'autorisation d'exécuter la commande ou d'accéder à une clé)
- ERR value is not an integer or out of rangeERR value is not an integer or out of range (la valeur n'est pas un entier ou est hors limites)
- ERR value is not a valid floatERR value is not a valid float (la valeur n'est pas un flottant valide)