Redis: el aliado de Cloud para mejorar el rendimiento de las bases de datos

3min

Más allá de las bases de datos relacionales como MySQL o las alternativas a MySQL, nos encontramos con Redis, un motor de base de datos que almacena la información en la memoria RAM. Esto quiere decir que es muchísimo más rápida y resuelve de manera sencilla y eficiente problemas que no necesitan la complejidad de otros sistemas. Además, es otra de las opciones Open Source que podemos desplegar en sólo unos clics desde el Catálogo de Aplicaciones de los Servidores Cloud de Arsys.

Redis está especialmente dirigido a proyectos que requieren  tiempos de respuesta extremadamente bajos. Al estar los datos alojados directamente en la memoria, estos se procesarán y recibirán a una altísima velocidad.

Por lo general,  podemos usar Redis cuando los datos no sean prioritarios pero sí el rendimiento. Por ejemplo, para guardar sesiones de consultas pesadas de las bases de datos más usuales, en aplicaciones de mensajería instantánea, en aplicaciones en tiempo real como videojuegos, etc.

Además, al ser un motor cliente/servidor levanta su servicio, responde peticiones y dispone de una interfaz de red, lo que hace posible conectar clientes o nodos desde otros host muy fácilmente. Está diseñada para ser escalable en el servidor y usa un sistema de replicación maestro-esclavo, lo que obtiene copias exactas en los servidores esclavos, de modo que:

  • El maestro puede tener todos los esclavos que precise.
  • Los esclavos pueden tener otros a su vez.
  • La copia es non-blocking en el maestro. Es decir, el maestro sigue funcionando y atendiendo solicitudes mientras los esclavos se sincronizan.
  • La configuración para que un servidor sea esclavo de otro es ridículamente sencilla.
Índice

Características de Redis

  • Increíblemente rápido. Los datos se encuentran en la memoria principal, a diferencia de otros sistemas que se encuentran en SSD o disco duro convencional. Como se elimina el acceso a esos discos, se evitan retrasos: se accede y se opera mucho más rápido.
  • Estructuras de datos en memoria.  Con Redis podemos guardar claves de diferentes tipos de datos y disponemos de un tamaño máximo de 512MB para una cadena, ya sea texto o datos binarios. También admite listas de cadenas, conjuntos de cadenas sin orden, conjuntos clasificados por puntuación, hashes e HyperLogLogs. Es decir, podemos almacenar en la memoria prácticamente cualquier tipo de dato.
  • Replicación y persistencia. Como comentamos antes, Redis hace uso de una arquitectura maestro-esclavo y acepta la replicación asíncrona que hace que pueda copiar datos en multitud de servidores esclavos. Con esto se mejoran las lecturas y la recuperación cuando falla el servidor principal.
  • Compatibilidad con casi cualquier lenguaje. Los que quieran desarrollar en Redis, pueden hacerlo con multitud de lenguajes de programación, como por ejemplo Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go y muchos más.

Además, es muy fácil de utilizar, gracias a las diferentes herramientas que aceleran el desarrollo, como:

  • Pub/Sub, fantástico para sistemas de mensajería instantánea y que permite publicar mensajes en canales para entregar a los suscriptores.
  • Claves TTL, que se destruyen a sí mismas con el tiempo que le indiquemos y que son ideales para evitar datos innecesarios en nuestra base.
  • Contadores atómicos, que nos aseguran que no se creen resultados incoherentes.
  • Lua, un lenguaje de scripts liviano pero poderoso.

Estas características, unidas a la flexibilidad y facilitad de gestión de los Servidores Cloud, convierten a Redis en una excelente opción para  los proyectos más exigentes en los tiempos de respuesta. Además, si queremos instalarlo, podemos hacerlo directamente desde el Catálogo de Aplicaciones Cloud o a través del Panel de Control de Cloudbuilder Next, seleccionando la imagen correspondiente en el proceso de creación de las máquinas.

Fernán García de Zúñiga

Productos relacionados: