Familiarícese con Redis y aprenda a optimizar sus aplicaciones de Node con este poderoso almacén de datos.

Cuando crea una aplicación web, debe asegurarse de que sea escalable y eficiente. Para hacerlo, deberá tener en cuenta varios principios y conceptos.

Redis es una de las muchas tecnologías que pueden ayudar a mejorar el rendimiento de sus aplicaciones web. Ofrece características notables que puede utilizar para mejorar el rendimiento de cualquier aplicación web.

Entonces, ¿qué es exactamente Redis y cómo puede comenzar a usarlo con sus aplicaciones web Node.js?

¿Qué es Redis y cuándo debería usarlo?

Redis es un almacén de datos de clave-valor de código abierto en memoria. Es una tecnología flexible que puede actuar como cola de trabajo, base de datos, caché, administrador de sesiones, intermediario de mensajes y más.

La combinación de velocidad, versatilidad y facilidad de uso de Redis la convierte en una herramienta muy valiosa en el ecosistema de desarrolladores de software.

¿Cuándo debería usar Redis?

instagram viewer

Redis se adapta bien a muchas tareas, pero debe tener cuidado de usarlo solo cuando tenga sentido hacerlo.

Debería considerar usar Redis en estos escenarios:

  • almacenamiento en caché: Redis es la forma más popular de implementar un caché para ayudar a evitar la carga en las bases de datos y mejorar el rendimiento general.
  • Gestión de sesiones: almacenar y administrar sesiones de usuario para autenticación y administración de estado es muy fácil con Redis.
  • Almacenamiento temporal de datos: Redis le permite almacenar datos y eliminarlos automáticamente después de un período de tiempo específico. Esto lo convierte en una buena herramienta para almacenar datos temporales como Tokens web JSON, colas de trabajo, etc.

Otros casos en los que debería considerar el uso de Redis incluyen la implementación de un intermediario de mensajes, la optimización operaciones de base de datos, e incluso almacenar y acceder de manera eficiente a estructuras de datos como listas, conjuntos y hachís.

Cómo usar Redis con Node.js

Node.js es una tecnología popular para crear aplicaciones del lado del servidor eficientes y escalables. Puede usarlo junto con tecnologías de soporte como Redis para obtener un alto rendimiento y escalabilidad.

Redis admite varios idiomas. Puedes usarlo para el almacenamiento de datos en PHP y hay excelentes clientes de Redis para Golang. Los dos clientes de Redis más populares para Node.js son nodo-redis y yoredis.

Ambos paquetes están disponibles a través de npm y son fáciles de usar. La principal diferencia es que nodo-redis es el cliente oficial, mientras que la comunidad recomienda yoredis.

Conexión a Redis desde Node.js

Para comenzar, debe tener Redis instalado en su computadora y un entorno de desarrollo Node.js configurado. Consulte la guía de instalación en redis.io para instalar Redis en Linux, macOS y Windows.

Debe instalar su SDK de cliente de Redis preferido en su proyecto para poder conectarse a Redis. Dependiendo de su preferencia (usaremos nodo-redis), ejecute cualquiera de los siguientes comandos para instalar el cliente de Redis:

npm instalar redis --save
npm instalar ioredis --guardar

El primer comando instala nodo-redis, mientras que el segundo instala yoredis.

Para configurar su cliente recién instalado, debe asegurarse de que Redis se esté ejecutando. Puede hacer esto simplemente comenzando redis-cli en tu terminal:

El silbido comando hace ping al servidor para confirmar que se está ejecutando, y un APESTAR respuesta en la CLI significa que el servidor está funcionando bien. Ahora crea un redis.js archivo en su proyecto Node y escriba el siguiente código en él para configurar Redis:

constante redis = requerir("redis")

// inicializar usando la configuración predeterminada
constante RedisClient = redis.createClient()

constante conectarRedis = asíncrono () => {
// conectarse a redis
esperar RedisClient.conectar()

// manejar el error
RedisClient.on('error', (error) => {
consola.error(`Ocurrió un error con Redis: ${err}`)
})

consola.registro('Redis conectado con éxito...')
}

El código anterior inicializa un nuevo cliente Redis en la aplicación. El crear cliente La función del paquete redis le permite crear un cliente usando sus parámetros especificados.

Puede especificar su host, puerto, nombre de usuario, contraseña o cadena de conexión, o usar los valores predeterminados. Por ejemplo, nodo-redis comenzará a ejecutarse en localhost, en el puerto 6379, por defecto.

Aquí hay un par de maneras en que puede usar el crear cliente función:

// usando la cadena de conexion
constante RedisClient = redis.createClient("rediss://127.0.0.1:6379")

// usando el objeto de parámetro
constante RedisClient = redis.createClient({
enchufe: {
anfitrión: "127.0.0.1",
puerto: "6379"
},
nombre de usuario: "tu nombre de usuario redis",
contraseña: "tu contraseña"
})

Use instancias seguras de Redis en producción. Cuando este es el caso, usted tiene un seguro URL cadena para la conexión o use los parámetros que se muestran arriba. Cualquiera que sea el caso, recuerde siempre mantener las credenciales fuera del código y use variables de entorno en su lugar.

Realización de operaciones básicas de Redis en Node.js

El siguiente código se conecta a Redis usando el conectarRedis anterior y demuestra algunas operaciones básicas que puede realizar en Redis desde sus aplicaciones de Node.

constante pruebaRedis = asíncrono () => {
esperar conectarRedis()

// Establecer y recuperar un valor
esperar RedisClient.set("nombre", "Timmy")
constante obtenerComando = esperar RedisClient.get("nombre")
consola.log (obtenerComando)

// Eliminar valores inmediatamente o programarlos para que caduquen
// en un número de segundos
esperar RedisClient.del("nombre");
esperar RedisClient.setEx("ubicación", 60, "Lagos")

// Empuje al frente o al final de una lista
esperar RedisCliente.lPush("días", "lunes")
esperar RedisClient.rPush("días", "martes")
esperar RedisCliente.lPush("días", "miércoles")
constante matriz de dias = esperar RedisClient.lRange("días", 0, -1)
// imprime [ 'miércoles', 'lunes', 'martes' ]
consola.log (matrizdías)

// Eliminar un elemento de la parte posterior o frontal de una lista
esperar RedisCliente.rPop("días")
esperar RedisCliente.lPop("días")
constante nuevoMatrizDías = esperar RedisClient.lRange("días", 0, -1)
// imprime [ 'lunes']
consola.log (nueva matriz de días)
}

pruebaRedis()

Note el uso de asíncrono y esperar aquí. Esto se debe a que todas las funciones se ejecutan de forma asincrónica y devuelven promesas, por lo que si necesita sus resultados de inmediato, es importante esperar a ellos.

El código anterior solo muestra algunas operaciones básicas que puede realizar en Redis desde una aplicación Node.js. Hay muchos más comandos y conceptos que vale la pena mirar.

El Comandos Redis en la sección LÉAME que se encuentra en nodo-redisGitHub repositorio es un buen lugar para encontrar todos los otros comandos y lo que hacen.

Utilice Redis para crear aplicaciones eficientes

Aprovechar el poder de Redis le permite a usted, como desarrollador, crear aplicaciones del lado del servidor altamente eficientes. Con el almacenamiento de datos en memoria de Redis y las extensas estructuras de datos y comandos, las aplicaciones pueden lograr optimizaciones de rendimiento notables.

Definitivamente debería considerar integrar Redis en su próxima aplicación Node.js para mejorar el rendimiento de su aplicación y brindar una mejor experiencia de usuario.