Dans les étapes précédentes, nous avons exécuté des scripts Lua directement en utilisant la commande EVAL. Bien que cela soit utile pour les scripts simples, cela peut devenir fastidieux pour les scripts plus volumineux et plus complexes. Redis fournit la commande SCRIPT LOAD pour charger des scripts dans le cache de scripts du serveur Redis. Cela vous permet d'exécuter le script plusieurs fois sans avoir à envoyer l'intégralité du script à chaque fois, ce qui améliore les performances.
Voyons comment cela fonctionne.
-
Connectez-vous au serveur Redis en utilisant l'interface de ligne de commande Redis (redis-cli).
redis-cli
-
Maintenant, chargeons un script Lua en utilisant SCRIPT LOAD. Nous utiliserons le même script que dans l'étape précédente qui incrémente un compteur d'un montant spécifié.
SCRIPT LOAD "local current = redis.call('INCRBY', KEYS[1], ARGV[1]); return current"
Cette commande chargera le script dans le cache de scripts du serveur Redis et renverra le hachage SHA1 du script. Vous devriez voir une sortie similaire à celle-ci :
"6b1e8dd2999cb08546e74339c0c9489f9f89a84b"
Il s'agit du hachage SHA1 du script. Prenez note de ce hachage, car vous en aurez besoin à l'étape suivante. La valeur exacte du hachage peut différer.
-
Maintenant, chargeons le script qui définit une clé à une valeur, où la clé et la valeur sont transmises en tant qu'arguments.
SCRIPT LOAD "redis.call('SET', KEYS[1], ARGV[1]); return ARGV[1]"
Vous devriez voir une sortie similaire à celle-ci :
"a8b2b3648969459a8198262a9166e945e890987c"
Encore une fois, prenez note de ce hachage.
-
Chargeons le script qui concatène deux chaînes de caractères transmises en tant qu'arguments et définit le résultat sur une clé.
SCRIPT LOAD "local result = ARGV[1] .. ARGV[2]; redis.call('SET', KEYS[1], result); return result"
Vous devriez voir une sortie similaire à celle-ci :
"d2a800a974ca96849295220424f9a0664a495345"
Prenez également note de ce hachage.
-
Vous pouvez vérifier que les scripts sont chargés en utilisant la commande SCRIPT EXISTS. Cette commande prend un ou plusieurs hachages SHA1 comme arguments et renvoie un tableau de 0 et de 1, où 1 indique que le script avec le hachage correspondant est chargé et 0 indique qu'il ne l'est pas.
Par exemple, pour vérifier si le premier script que nous avons chargé est toujours chargé, utilisez la commande suivante, en remplaçant le hachage par celui que vous avez obtenu à l'étape 2 :
SCRIPT EXISTS 6b1e8dd2999cb08546e74339c0c9489f9f89a84b
Sortie :
1) (integer) 1
Cela indique que le script est chargé.
Si vous essayez de vérifier un script qui n'est pas chargé :
SCRIPT EXISTS 0000000000000000000000000000000000000000
Sortie :
1) (integer) 0
Cela indique que le script n'est pas chargé.
-
Quittez redis-cli. Ceci est important pour que les modifications soient enregistrées.
exit