Recherche…


Introduction

Redis fournit quelques mécanismes pour étendre les fonctionnalités de la base de données. Un mécanisme consiste à utiliser des scripts LUA côté serveur qui peuvent être exécutés pour manipuler des données. Les scripts Lua peuvent être utiles pour effectuer des opérations coûteuses ou implémenter des opérations atomiques nécessitant une logique.

Commandes pour les scripts

Redis propose sept opérations différentes pour travailler avec des scripts:

  • Opérations d'évaluation (EVAL, EVALSHA)
  • Opérations SCRIPT (DEBUG, EXISTS, FLUSH, KILL, LOAD)

La commande EVAL évalue un script fourni sous la forme d'un argument de chaîne sur le serveur. Les scripts peuvent accéder aux clés Redis spécifiées nommées comme arguments dans la commande et aux paramètres de chaîne supplémentaires que l'utilisateur souhaite transmettre au script.

Par exemple, la commande:

EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

provoque l'exécution d'un script Lua défini par l'utilisateur qui renvoie simplement les valeurs fournies. L'appel est impliqué avec 2 clés Redis (clé1 et clé2) et deux paramètres.

Une autre façon d'exécuter un script Lua consiste à le charger d'abord dans la base de données, puis à l'exécuter en utilisant un hachage SHA du script .:

> script load "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"
"a42059b356c875f0717db19a51f6aaca9ae659ea"
> evalsha "a42059b356c875f0717db19a51f6aaca9ae659ea" 2 key1 key2 foo bar
1) "key1"
2) "key2"
3) "foo"
4) "bar"

La commande de chargement de script charge le script et le stocke dans la base de données. Une signature sha du script est renvoyée pour pouvoir être référencée par les futurs appels. La fonction EVALSHA prend le sha et exécute le script correspondant à partir de la base de données.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow