Construyendo aplicaciones
con PHP + LUA + REDIS
Gonzalo Chacaltana Buleje
@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
Top Related