Redis Lua Scripting

Redis Lua Scripting

Redis es una base de datos gratuita de código abierto en memoria ampliamente adoptada como mecanismo de almacenamiento en caché o corredor de mensajes.

Aunque es muy versátil y extenso por defecto, le permite extender la funcionalidad utilizando su intérprete Lua integrado. Esto significa que puede escribir scripts escritos en Lua para realizar operaciones adicionales en su base de datos Redis.

Requisitos

Para seguir mejor con este tutorial, recomendamos tener la última versión del servidor Redis en su sistema.

El conocimiento básico de Redis es beneficioso para comprender los comandos ilustrados en este tutorial.

Comando Redis Eval

Para ejecutar los comandos LUA en Redis, debe usar el comando eval. El comando le dice a Redis que ejecute el código como un script Lua del lado del servidor.

Un ejemplo es como se muestra:

127.0.0.1: 6379> eval "Redis.llamar ('set', claves [1], argv [1]) "1 valor clave

En el ejemplo anterior, comenzamos con el comando EVEV seguido de un script Lua. El script usa el redis.función de llamada. Luego pasamos el comando para ejecutar, clave y valorar como argumentos. Esto es similar a ejecutar valores de clave establecidos.

Tenga en cuenta que Keys y Argv denotan los argumentos del guión. Especificamos el número de claves como 1 en este caso.

El análisis de argumentos se realiza a través del argv, que contiene la tabla de argumentos. En nuestro caso, pasamos el valor de la clave.

Luego podemos acceder a las teclas a partir del índice 1.

NOTA: Se recomienda especificar todas las claves utilizadas en el script en claves y todos los demás argumentos en Argv.

Podemos obtener el valor de una clave usando el comando get:

127.0.0.1: 6379> eval "Redis.llamar ('Get', Keys [1]) "1 Clave

Esto debería devolver el valor de la clave especificada.

Comando Redis Evalsha

Redis también le proporciona el comando Evalsha para recuperar un comando basado en su valor hash.

Esto elimina la necesidad de volver a escribir el script cada vez que lo necesita.

Ejemplo:

Carga de script "Return Redis.Llame ('Get', Keys [1]) "

El comando anterior debe devolver un valor SHA como:

"4E6D8FC8BB01276962CCE5371FA795A7763657AE"

Luego puede usar este valor SHA para recuperar un comando.

127.0.0.1: 6379> Evalsha 4e6d8fc8bb01276962cce5371fa795a7763657ae 1 clave
"valor"

Para eliminar todos los scripts cargados, ejecute el comando:

127.0.0.1: 6379> Script Flush
DE ACUERDO

El comando anterior debe descargar el caché de script.

Conclusión

Este artículo describe los comandos más básicos para usar cuando se trabaja con Scripting Lua en Redis. Consulte la documentación de Lua para descubrir más.