Buscar..


Introducción

Redis proporciona un par de mecanismos para ampliar la funcionalidad de la base de datos. Un mecanismo es mediante el uso de scripts LUA del lado del servidor que se pueden ejecutar para manipular los datos. Los scripts de Lua pueden ser útiles para realizar operaciones costosas o para implementar operaciones atómicas que requieren lógica.

Comandos para scripting

Redis proporciona siete operaciones diferentes para trabajar con scripts:

  • Evaluar operaciones (EVAL, EVALSHA)
  • Operaciones de SCRIPT (DEBUG, EXISTS, FLUSH, KILL, LOAD)

El comando EVAL evalúa una secuencia de comandos proporcionada como un argumento de cadena al servidor. Los scripts pueden acceder a las claves de Redis especificadas como argumentos para el comando y a los parámetros de cadena adicionales que el usuario quiere pasar al script.

Por ejemplo, el comando:

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

provoca la ejecución de un script Lua definido por el usuario que simplemente devuelve los valores proporcionados. La llamada está involucrada con 2 teclas Redis (tecla 1 y tecla 2) y dos parámetros.

Otra forma de ejecutar un script Lua es cargarlo primero en la base de datos y luego ejecutarlo usando un hash SHA del 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"

El comando de carga de script carga el script y lo almacena en la base de datos. Se devuelve una firma sha del script para que pueda ser referenciada por futuras llamadas. La función EVALSHA toma el sha y ejecuta el script correspondiente desde la base de datos.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow