Lua y Redis


Que es Lua?

LualogoLua es un lenguaje de scripting que puede ser usado en Redis. En el siguiente enlace se describe la sintaxis del lenguaje.
Las ventajas que aporta Lua a Redis son:

  • El script de Lua se ejecuta atómicamente. Evita el uso de transacciones (El uso de bloques WATCH/MULTI/EXEC).
  • Es mas eficiente; ya que realiza toda la tarea en el servidor. Evita múltiples conexiones de ida y vuelta con los datos hacia y desde el servidor.

LuaHelloWorld
Ejemplo de Script Hello World

echo local msg = "hello world"; return msg > hello.txt
redis-cli -p 6380 -a [Clave de conexión] --eval hello.txt

Lua en Redis

EVAL "redis.call('SET',KEYS[1],ARGV[1]); return redis.call('GET',KEYS[1])" 1 key valor
  • El comando EVAL permite la ejecución del script. Permite enviar parámetros para la ejecución del script que son obtenidos en el script mediante KEYS o ARGV.
  • Para ejecutar comandos de Redis en el script debemos usar el comando redis.call() o redis.pcall() (este último es el redis.call() con protección frente excepciones). Adjunto enlaces con de ejemplos de scripts.
  • Es posible guardar el script en el servicio (LOAD) y posteriormente ejecutarlo mediante un identificador de carga (EVALSHA). Esto permite:
    • Mejora el rendimiento ya que evita recompilar el script en cada ejecución.
    • Se requiere reenviar el script en cada ejecución (con el consumo de ancho de banda).
Anuncios
Esta entrada fue publicada en Azure, Indices Cache, Redis. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s