¿La obtención de datos lenta y repetitiva está causando que su aplicación tenga un rendimiento inferior al esperado? Intente almacenar en caché para resolver el problema.

La creación de aplicaciones web rápidas y confiables es más importante que nunca en el panorama digital actual. Los usuarios tienen grandes expectativas en lo que respecta al rendimiento del sitio web. Los tiempos de carga lentos o el tiempo de inactividad pueden provocar la frustración del cliente y dañar la reputación.

Una forma de lograr aplicaciones web rápidas y confiables es mediante el uso del almacenamiento en caché. Hay diferentes tipos de cachés que puede implementar en su aplicación, incluido el caché en memoria, el caché del navegador, el caché de la base de datos y el caché de CDN.

¿Qué es el almacenamiento en caché y en qué difiere el almacenamiento en caché en memoria? ¿Cómo puede aumentar el rendimiento de su aplicación Nest.js con el almacenamiento en caché en memoria?

¿Qué es el almacenamiento en caché?

instagram viewer

El almacenamiento en caché es el proceso de almacenar datos a los que se accede con frecuencia en una ubicación temporal para mejorar el rendimiento de una aplicación o sistema. Los datos almacenados en caché se pueden recuperar rápidamente y servir al usuario sin tener que recuperarlos nuevamente de la fuente original.

Las aplicaciones utilizan el almacenamiento en caché para entregar contenido de manera más rápida y eficiente, lo que conduce a una mejor experiencia del usuario y reduce la carga en los sistemas subyacentes. Los tipos más comunes de almacenamiento en caché incluyen almacenamiento en memoria caché, Almacenamiento en caché de CDN, almacenamiento en caché del navegador y almacenamiento en caché de la base de datos.

¿Qué es el almacenamiento en caché en memoria?

El almacenamiento en caché en memoria es un tipo de almacenamiento en caché en el que una aplicación almacena temporalmente datos a los que se accede con frecuencia en la memoria del servidor. En lugar de realizar costosas llamadas a la base de datos cada vez que la aplicación procesa una solicitud para acceder a los datos, puede obtener esos datos de la memoria.

El almacenamiento en caché de los datos en la memoria significa que la aplicación accede a los datos más rápido y esto da como resultado un rendimiento mejorado.

Cómo implementar el almacenamiento en caché en memoria en una aplicación Nest.js

Nest.js tiene soporte integrado para el almacenamiento en caché mediante controladores como Redis, Memcached y muchos más. Sin embargo, para facilitar la comprensión, este artículo utiliza el módulo de caché de memoria integrado que proporciona Nest.js.

Esta sección asume que ya tiene una aplicación Nest.js creada con el comando CLI de Nest: anidar nuevo [nombre de la aplicación]. Para implementar la memoria caché en memoria en un punto final, ya debe tener los archivos de módulo, servicio y controlador, o generarlos usando el nidogenerar dominio. Puede obtener más información sobre nido generar en el Documentación de la CLI de Nest.

El primer paso para implementar un caché en memoria es importar el CacheModule de @nestjs/común en el módulo de su punto final como se ve a continuación:

// ejemplo.module.ts
importar { Módulo, CacheModule } de'@nestjs/común';

@Módulo({
importaciones: [CacheModule.register()],
})

exportarclase EjemploMódulo {}

A continuación, debe importar CacheService e inyectarlo en el servicio Nest.js que se comunica con un base de datos como MongoDB. Puede ver cómo el siguiente ejemplo de código hace esto:

// ejemplo.servicio.ts
importar { Inyectable, CacheService } de'@nestjs/común';

@Inyectable()
exportarclase EjemploServicio {
constructor(privado Servicio de caché de solo lectura: Servicio de caché) {}

asíncrono obtener datos(): Promesa<cualquier> {
constante cacheKey = 'mis datos';
dejar datos = esperareste.cacheService.get (cacheKey);

si (!datos) {
// obtener datos de la base de datos o API
datos = esperareste.obtener datos();

// datos de caché para uso futuro
esperareste.cacheService.set (cacheKey, datos, {ttl: 60 });
}

devolver datos;
}

privadoasíncrono obtener datos(): Promesa<cualquier> {
// recuperar datos de la base de datos
}
}

En el código de ejemplo anterior, el EjemploServicio usos CacheService como dependencia. El obtener datos El método verifica si los datos están disponibles en el caché usando una clave (cacheKey), si los datos no están en el caché, continúa para obtenerlos de la base de datos y los almacena en caché para su uso posterior.

El CacheService tiene un colocar método que toma un objeto como argumento. En este caso, se puede ver cómo el valor { ttl: 60 } establece el tiempo de vida en 60 segundos. Esto implica que el servicio eliminará automáticamente los datos almacenados en caché después de un minuto.

Algunas ventajas importantes del almacenamiento en caché en memoria incluyen las siguientes:

  • Escalabilidad mejorada: El almacenamiento en caché en memoria puede ayudar a mejorar la escalabilidad de las aplicaciones al reducir la carga en la fuente de datos subyacente.
  • Tiempo de respuesta más rápido: El almacenamiento en caché de los datos a los que se accede con frecuencia en la memoria reduce el tiempo que lleva recuperar los datos, lo que da como resultado tiempos de respuesta más rápidos.
  • Mejor experiencia de usuario: Los tiempos de respuesta más rápidos y la escalabilidad mejorada pueden ayudar a proporcionar una mejor experiencia de usuario al reducir el tiempo de espera y mejorar el rendimiento general de la aplicación.
  • Costos reducidos: Al reducir la carga en la fuente de datos, el almacenamiento en caché en memoria puede ayudar a reducir el costo de ejecución de la aplicación.

Optimización de aplicaciones Nest.js con almacenamiento en caché en memoria

El almacenamiento en caché en memoria es una forma muy eficaz de mejorar el rendimiento general de la aplicación. Ha visto cómo implementar un caché en memoria en Nest.js y cómo mejora la escalabilidad y la experiencia del usuario. También puede mejorar el tiempo de respuesta y reducir los costos de ejecución de su aplicación.

Intente poner el concepto de almacenamiento en caché en un uso práctico al crear su próxima aplicación o API de Nest.js.