> For the complete documentation index, see [llms.txt](https://cross-packages.gitbook.io/cross-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cross-packages.gitbook.io/cross-api/pt-br/providers/cache.md).

# Cache

Uma implementação de cache para tornar o sistema mais fluido e nem sempre depender de operações SQL.

## Disponíveis:

* Redis
* Fake

## Métodos:

**Save:** Armazena em cachê um valor passado em uma chave.

```typescript
const data = { message: 'data' };

await this.cacheProvider.save(
    {
        prefix: 'messages',
        suffix: 'key:id=123',
    },
    data,
);
```

**SaveTemporary:** Armazena em cachê um valor passado em uma chave por um tempo limitado.

```typescript
const data = { message: 'data' };

await this.cacheProvider.saveTemporary(
    {
        prefix: 'messages',
        suffix: 'key:id=123',
    },
    data,
    '7d',
);
```

**Recovery:** Recupera os dados em cachê a partir de uma chave.

```typescript
const data = await this.cacheProvider.recovery({
    prefix: 'messages',
    suffix: 'key:id=123',
});
```

**Invalidate:** Deleta um conjunto chave valor específico.

```typescript
await this.cacheProvider.invalidate({
    prefix: 'messages',
    suffix: 'key:id=123',
});
```

**InvalidatePrefix:** Deleta todos os conjuntos chave valor iniciados pela chave passada.

```typescript
await this.cacheProvider.invalidatePrefix('key');
```

**Close:** É usado para fechar a conexão com o redis.

```typescript
this.cacheProvider.close();
```

***
