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

Pourquoi y a-t-il des tableaux KEYS et ARGV lors de l'appel de scripts Redis Lua ?

Toutes vos questions sont répondues à l'EVAL page, mais puisque vous avez demandé... :

Quelle est la différence?

KEYS est utilisé pour passer des noms de clés alors que ARGS devrait être pour autre chose. Ce n'est pas exactement appliqué (c'est-à-dire que la plupart du temps, vous seriez d'accord pour les mélanger), mais cela pourrait entraîner des problèmes potentiels s'il n'est pas suivi.

Comment Redis traite-t-il les valeurs dans le tableau KEYS ?

Le contenu de KEYS sont vérifiés pour vérifier que toutes les clés sont disponibles pour le fragment Redis qui exécute le script. Ce mécanisme est en place pour permettre l'exécution de scripts dans un déploiement de cluster Redis.

Que se passe-t-il si, dans mon script, je dois utiliser des clés générées dynamiquement lors de l'exécution ?

Voir les réponses précédentes - c'est faisable mais vous iriez à l'encontre des recommandations. Votre script pourra s'exécuter en toute sécurité uniquement sur une instance Redis autonome et, comme ce comportement n'est pas spécifié, il peut se briser dans les versions futures.