> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Como criar um banco Redis e conectar (rediss)

## 1. Pré-requisitos

Para seguir este tutorial, você precisará de:

* **Plano Standard ou superior:** O gerenciamento de bancos de dados Redis é um recurso disponível a partir do plano Standard.
* **Acesso ao Dashboard:** Suas credenciais de acesso à plataforma Square Cloud.

---

## 2. Criando a instância de Banco de Dados

1.  Acesse o [Dashboard da Square Cloud](https://squarecloud.app/pt-br/dashboard).
2.  Acesse a página de [Bancos de dados](https://squarecloud.app/pt-br/dashboard/databases) e selecione a opção **Criar bancos de dados**.
3.  Dê um nome à sua instância.
4.  Escolha o **Redis** na lista de bancos de dados disponíveis.
5.  Selecione a RAM desejada e confirme a criação.
6.  Após a inicialização, você terá acesso às credenciais fundamentais em um URL: `Host`, `Port`, `Password`.

---

## 3. Entendendo os certificados SSL

A Square Cloud exige conexões criptografadas (TLS/SSL) para proteger os dados trafegados em memória. Para realizar essa conexão, você precisará utilizar os certificados fornecidos pela plataforma.

Na aba de configurações do seu banco de dados, você encontrará as seguintes opções de download:

* **`certificate.pem`**: É um arquivo combinado que contém a chave privada (`key`) e o certificado (`cert`). Para a maioria dos drivers de conexão, este é o único arquivo necessário.
* **`client-key.key`** e **`client-cert.crt`**: Disponibilizados separadamente para sistemas ou drivers legados que exigem arquivos individuais.

---

## 4. Como conectar (exemplos por cliente)

A URL de conexão usa o formato seguro `rediss://` (com dois "s", que ativa o TLS):

```
rediss://default:SUA_SENHA@HOST:PORTA
```

O arquivo `certificate.pem` (baixado no dashboard) valida a conexão. **A forma de informar o certificado muda conforme o cliente** — não coloque os caminhos do certificado como parâmetros na URL: isso só funciona no `redis-py` (Python) e quebra no `node-redis`/`ioredis`.

### Node.js — node-redis (v4+)

```javascript
import { createClient } from 'redis';
import fs from 'node:fs';

const client = createClient({
  url: 'rediss://default:SUA_SENHA@HOST:PORTA',
  socket: { tls: true, ca: fs.readFileSync('./certificate.pem') }
});
await client.connect();
```

### Node.js — ioredis

```javascript
import Redis from 'ioredis';
import fs from 'node:fs';

const redis = new Redis({
  host: 'HOST',
  port: PORTA,
  password: 'SUA_SENHA',
  tls: { ca: fs.readFileSync('./certificate.pem') }
});
```

### Python — redis-py

```python
import redis

r = redis.Redis(
    host='HOST',
    port=PORTA,
    password='SUA_SENHA',
    ssl=True,
    ssl_ca_certs='certificate.pem'
)
```

Substitua `HOST`, `PORTA` e `SUA_SENHA` pelos dados do seu banco no dashboard.

## 5. Boas práticas e segurança

* **Arquivo .gitignore:** O arquivo `certificate.pem` contém informações sensíveis. Nunca o envie para repositórios públicos; adicione-o imediatamente ao seu `.gitignore`.
* **Protocolo Seguro:** Certifique-se sempre de utilizar o prefixo `rediss://` em vez de `redis://` para garantir que o driver tente realizar o handshake SSL.

---

## Extra

Para melhor visualização, veja nosso vídeo tutorial: https://www.youtube.com/watch?v=WJsgRKsQrCI