Construyendo Aplicaciones Con PHP + LUA + REDIS

19
Construyendo aplicaciones con PHP + LUA + REDIS Gonzalo Chacaltana Buleje [email protected] @gchacaltanab

Transcript of Construyendo Aplicaciones Con PHP + LUA + REDIS

  • Construyendo aplicaciones

    con PHP + LUA + REDIS

    Gonzalo Chacaltana Buleje

    [email protected]

    @gchacaltanab

  • Antes de empezar

    Los ejemplos del presente documento, requiere conocer el lenguaje de programacin PHP y los

    comandos bsicos de REDIS.

    Puede dirigirse a la seccin de

    Referencias para obtener los

    links de donde pueda aprender

    sobre PHP y REDIS.

  • Conociendo LUA

    Creado en 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, miembros

    del Grupo de Tecnologa en Computacin Grfica

    (Tecgraf) en la Pontificia Universidad Catlica de Ro de

    Janeiro, Brasil.

    Su ltima versin estable a la fecha

    es la 5.2.1, bajo licencia MIT.

    Roberto

    Ierusalimschy

  • Lua es un lenguaje de programacin imperativo,

    estructurado y muy veloz, usado en distintas aplicaciones

    comerciales como Adobe, videojuegos como Warcraft ,

    Angry birds y control de hardware.

    Conociendo LUA

    LUA significa "luna" en portugus,

    de ah su logo.

  • LUA es muy rpido: es considerado uno de los lenguajes de programacin ms veloces del mundo.

    LUA es portable: es pequeo y corre en todas las plataformas que tengan un compilador C estndar,

    como UNIX, Windows, OS-X y los distintos Sistemas

    Operativos para mviles.

    Lua no es un lenguaje orientado a objetos puro, pero proporciona meta-mecanismos para la implementacin

    de clases y herencia.

    Caractersticas de LUA

  • Las variables no tienen tipo.

    Los datos pueden ser lgicos, enteros, nmeros de coma flotante o cadenas.

    Las Estructuras de datos como vectores, conjuntos, tablas hash, listas y registros pueden ser representadas

    utilizando la nica estructura de datos de Lua: La

    tabla.

    Su sintaxis se basa en Scheme, SNOBOL, Modula, CLU, C++.

    Caractersticas de LUA

  • Instalando mdulo REDIS para PHP

    Descargarse la librera de Redis para PHP, de la siguiente repositorio de Github. (https://github.com/gchacaltana/phpredis).

    o tambin puede clonar el repositorio con GIT:

    git clone https://github.com/gchacaltana/phpredis.git

    Una vez descargado, ingresamos al directorio principal de la librera y ejecutamos desde nuestro terminal.

    $>sudo apt-get install php5-dev

    $>phpize

    $>./configure [--enable-redis-igbinary]

    $>make && make install

  • Instalando mdulo REDIS para PHP

    Copia el archivo redis.so en la siguiente ruta:

    $>sudo cp /path/redis.so /etc/php5/conf.d/

    Luego debes editar el php.ini, agregando: extension=redis.so

    Y reinicias el servidor web.

    $>sudo service apache2 restart (para apache)

    $>sudo service ngnix restart (para ngnix)

  • Instalando mdulo REDIS para PHP

    En la informacin del phpinfo, debe aparecer

    el modulo Redis.

  • Ejemplo: Usuarios en lnea.

    Como ejemplo, vamos a utilizar Redis para almacenar el nombre de usuario y la fecha de su ltima conexin a

    nuestro Sistema, para mostrar cuantos usuarios estn

    en lnea, de esta forma evitamos realizar repetidas

    consultas a nuestra base de datos (MySQL), ya que

    REDIS es un motor de base de datos en memoria RAM.

  • Creando un sorted set en Redis

    Iniciamos el servicio de redis en nuestro servidor:

    $> sudo service redis_6379 start

    Ingresamos a Redis y podemos crear una lista ordenada

    llamada usersonline $>redis-cli

    Redis 127.0.0.1:6379> zadd usersonline 100 gchacaltanab

    Redis 127.0.0.1:6379> zadd usersonline 101 demo

    Redis 127.0.0.1:6379> zadd usersonline 102 pepito

  • Conectando a Redis

  • Insertando data a Redis

  • Obteniendo data de Redis

  • Obteniendo cantidad total de una

    lista ordenada en Redis.

  • Script LUA para eliminar elementos

    de una lista en Redis.

  • Ejecutando LUA Script desde PHP y

    REDIS.

  • PHP + REDIS + LUA. Construir aplicaciones web usando REDIS + LUA te permite

    acelerar el tiempo de respuesta de las transacciones que

    puedas requerir con alguna base de datos

    relacional convencional, teniendo en cuenta

    para que tipo de soluciones necesitas

    almacenar informacin en memoria RAM.

    Redis de por si es muy rpido y

    aplicando LUA como procedimiento

    almacenado, para ejecutar mltiples

    tareas, mejora la performance de Redis y

    de la aplicacin.

  • Referencias

    Documentacin de LUA. http://www.lua.org/docs.html

    LUA Edit. http://luaedit.sourceforge.net/download.html

    Documentacin de Redis. http://redis.io/documentation

    Librera PHP-REDIS. https://github.com/gchacaltana/phpredis

    Aprendiendo REDIS en 20 minutos. https://speakerdeck.com/gchacaltana/aprendiendo-redis-en-20-minutos