Node.js, MongoDB y redis – carrito de la compra

shoppingcart

En este tutorial vamos a ver como implementar un carrito de la compra. Para ello utilizaremos:

  • un servidor node.js con Express
  • una base de datos no-relacional de tipo clave-valor como es redis, para almacenar el carrito de forma termporal con tiempo de expiración y varias líneas de pedido (más info sobre redis)
  • una base de datos no relacional como es MongoDB para guardar el carrito una vez se realice la compra (más info sobre MongoDB) y mongoose

Partimos de una API RESTful que implementa los casos CRUD para una tienda de camisetas y que ya vimos en entradas anteriores. También podemos partir de la misma aplicación a la que añadimos el servicio “what’s hot now”

Lo que haremos será lo siguiente:

  • Crear un modelo carrito
  • Crear los servicios para:
    • añadir producto al carrito; el carrito se almacena en un hash en redis; en dicho hash habrá muchos productos (líneas de pedido); tiene tiempo de expiración de 5 minutos
    • ver el carrito; básicamente es ver los productos (líneas de pedido) que hay el el hash; las líneas de pedido tienen la id del producto y una cantidad
    • eliminar un producto del carrito; es eliminar una línea de pedido del hash
    • realizar compra; guarda el carrito con sus líneas de pedido en mongo
    • ver carritos que ya se hayan completado y estén en mongo Continue…

Node.js + redis. Implementando un “what’s hot” con tiempo de expiración

node_redis

 

En este tutorial vamos a ver como implementar un servicio “what’s hot” utilizando un servidor node.js y una base de datos no-relacional de tipo clave-valor como es redis. ¿Qué hace este servicio? Simplemente nos devuelve las camisetas más vistas durante el último día.

Partimos de una API RESTful que implementa los casos CRUD para una tienda de camisetas y que ya vimos en entradas anteriores. Lo que haremos será lo siguiente:

  • Accedemos a ver una camiseta GET /tshirt/:id
  • Al acceder, guardaremos en una BD redis una clave cuyo valor será el número de accesos que ha tenido la camiseta. La clave tendrá la siguiente forma: hot.id => 4. Además, la clave tendrá un tiempo de expiración de 86400 segundos, es decir, de un día.
  • Si queremos conocer las camisetas más vistas en el último día, accederemos a /hots con el método GET, y obtendremos las “camisetas calientes”.

Si queréis podéis consultar en SpeakinBytes información sobre redis.

Continue…

Noob, te presento a redis

redis

Actualmente estamos acostumbrados a hacer peticiones y a querer resultados lo más pronto posible. Con el auge de Internet y de los smartphones, las aplicaciones  cada vez tienen que dar servicio a un mayor número de usuarios y las antiguas arquitecturas Cliente-Servidor o las Bases de Datos Relacionales no son suficientes para soportar cientos de millones de usuarios, por lo que ha sido necesario  re-inventarse. Ya en una entrada anterior os hablamos sobre una base de datos no-relacional como es MongoDB.

En esta entrada hablaremos de redis de forma teórico-práctica, aunque más bien teórica. En futuras entradas veremos cómo utilizarlo junto con node.js y MongoDB. ¿Qué vamos a ver entonces?

  • ¿Qué es redis?
  • Tipos de estructura de datos que soporta
  • Instalación
  • Algunos parámetros de configuración
  • Comandos y operaciones básicas
  • Transacciones Continue…