1.0.3 • Published 4 months ago

@tresdoce-nestjs-toolkit/redis v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Este módulo está pensado para ser utilizado en NestJS Starter, o cualquier proyecto que utilice una configuración centralizada, siguiendo la misma arquitectura del starter.

Glosario


📝 Requerimientos básicos

🛠️ Instalar dependencia

npm install -S @tresdoce-nestjs-toolkit/redis
yarn add @tresdoce-nestjs-toolkit/redis

⚙️ Configuración

Agregar los datos de conexión a la Redis en configuration.ts utilizando el key redis y que contenga el objeto con los datos conexión desde las variables de entorno.

//./src/config/configuration.ts
import { Typings } from '@tresdoce-nestjs-toolkit/core';
import { registerAs } from '@nestjs/config';

export default registerAs('config', (): Typings.AppConfig => {
  return {
    //...
    redis: {
      name: encodeURIComponent(process.env.REDIS_NAME),
      host: encodeURIComponent(process.env.REDIS_HOST),
      port: parseInt(process.env.REDIS_PORT, 10) || 6379,
      username: encodeURIComponent(process.env.REDIS_USERNAME),
      password: encodeURIComponent(process.env.REDIS_PASSWORD),
    },
    //...
  };
});

name: Es el nombre de la Redis.

  • Type: String
  • Required: false

protocol: Es el protocolo de conexión de la Redis.

  • Type: String
  • Required: false
  • Default: redis
  • Values: redis | rediss

host: Es el servidor para conectarse a la Redis.

  • Type: String
  • Required: true
  • Values: localhost | 127.0.0.1 | <host>

port: Es el puerto para conectarse a la Redis.

  • Type: Number
  • Required: true
  • Default: 6379

username: Es el nombre de usuario para conectarse a la Redis.

  • Type: String
  • Required: false
  • Default: default

password: Es la contraseña de usuario para conectarse a la Redis.

  • Type: String
  • Required: false

database: Es la base de datos de la Redis.

  • Type: number
  • Required: false
  • Default: 0

Para más información sobre los parámetros de conexión, puedes consultar en el Client Configuration de Redis.

👨‍💻 Uso

Importar el RedisModule en el archivo app.module.ts, y el módulo se encargará de obtener la configuración y realizar la connexion automáticamente.

//./src/app.module.ts
import { RedisModule } from '@tresdoce-nestjs-toolkit/redis';

@Module({
  //...
  imports: [
    //...
    RedisModule,
    //...
  ],
  //...
})
export class AppModule {}

Luego inyecte el RedisService en su clase para poder interactuar con el cliente de Redis.

import { Injectable } from '@nestjs/common';
import { RedisService } from '@tresdoce-nestjs-toolkit/redis';

@Injectable()
export class CatService {
  constructor(private readonly redisService: RedisService) {}

  async redisEcho() {
    return await this.redisService.echo('Hello world!');
  }

  //...
}

Comandos

Si bien Redis tiene una gran cantidad de comandos, este módulo solo tiene habilitado los comandos más utilizados al momento de desarrollar una aplicación, pero de todas formas, puedes inyectar el REDIS_CLIENT en vez del servicio e interactuar con todos los comandos.

Echo

Retorna una cadena de texto que le envies.

await this.redisService.echo('Hello world!');

Exists

Retorna un Boolean si el key existe en la Redis.

await this.redisService.exists('myKey');

Set

Guarda en la Redis un value asociado a una key, y tiene como parámetro opcional el tiempo de expiración en segundos.

await this.redisService.set('myKey', 'my value');
await this.redisService.set('myKey', { key: 'value' });
await this.redisService.set('myKey', 'my value', 10);

Get

Retorna el value de la key guardado en la Redis.

await this.redisService.get('myKey');

Del

Elimina el value y key guardado en la Redis.

await this.redisService.del('myKey');

Copy

Copia el value de una key y guarda en la Redis con el nuevo nombre.

await this.redisService.copy('myKey', 'myKeyCopy');

Rename

Renombra una key en la Redis con el nuevo nombre.

await this.redisService.rename('myKeyCopy', 'myKey2');

FlushAll

Elimina todos los datos guardados en la Redis.

await this.redisService.flushAll();

📄 Changelog

Todos los cambios notables de este paquete se documentarán en el archivo Changelog.


1.0.3

4 months ago

1.0.2

8 months ago

1.0.1

9 months ago

1.0.0

9 months ago

1.0.0-beta.2

9 months ago

1.0.1-beta.1

9 months ago

1.0.2-beta.0

8 months ago

1.0.1-beta.0

9 months ago

1.0.0-beta.0

9 months ago

1.0.0-beta.1

9 months ago

0.3.3-beta.1

10 months ago

0.3.2-beta.1

10 months ago

0.3.4-beta.0

9 months ago

0.3.2-beta.0

10 months ago

0.3.3-beta.0

10 months ago

0.3.2

10 months ago

0.3.3

10 months ago

0.3.2-beta.2

10 months ago

0.3.0-beta.2

12 months ago

0.3.0-beta.3

12 months ago

0.3.0

12 months ago

0.3.0-beta.0

12 months ago

0.3.0-beta.1

12 months ago

0.3.0-beta.4

12 months ago

0.3.1

12 months ago

0.2.0-beta.0

1 year ago

0.2.0

1 year ago

0.1.6-beta.0

1 year ago

0.1.5-beta.0

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.2-beta.0

2 years ago

0.1.2

2 years ago

0.1.3

2 years ago

0.1.1

2 years ago

0.1.1-beta.0

2 years ago

0.1.0

2 years ago

0.1.0-beta.4

2 years ago

0.1.0-beta.3

2 years ago

0.1.0-beta.2

2 years ago

0.1.0-beta.1

2 years ago

0.1.0-beta.0

2 years ago