> ## 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).

# Cómo crear una base de datos Redis y conectar (rediss)

## 1. Requisitos previos

Para seguir este tutorial, necesitarás:

* **Plan Standard o superior:** La gestión de bases de datos Redis es un recurso disponible a partir del plan Standard.
* **Acceso al Dashboard:** Tus credenciales de acceso a la plataforma Square Cloud.

---

## 2. Creando la instancia de base de datos

1.  Accede al [Dashboard de Square Cloud](https://squarecloud.app/pt-br/dashboard).
2.  Accede a la página de [Bases de datos](https://squarecloud.app/pt-br/dashboard/databases) y selecciona la opción **Crear bases de datos**.
3.  Dale un nombre a tu instancia.
4.  Elige **Redis** en la lista de bases de datos disponibles.
5.  Selecciona la RAM deseada y confirma la creación.
6.  Tras la inicialización, tendrás acceso a las credenciales fundamentales en una URL: `Host`, `Port`, `Password`.

---

## 3. Entendiendo los certificados SSL

Square Cloud exige conexiones cifradas (TLS/SSL) para proteger los datos transmitidos. Para realizar esa conexión, necesitarás utilizar los certificados proporcionados por la plataforma.

En la pestaña de configuraciones de tu base de datos, encontrarás las siguientes opciones de descarga:

* **`certificate.pem`**: Es un archivo combinado que contiene la clave privada (`key`) y el certificado (`cert`). Para la mayoría de los drivers de conexión, este es el único archivo necesario.
* **`client-key.key`** y **`client-cert.crt`**: Disponibles por separado para sistemas o drivers legados que exigen archivos individuales.

---

## 4. Cómo conectar (ejemplos por cliente)

La URL de conexión usa el esquema seguro `rediss://` (con dos "s", que activa el TLS):

```
rediss://default:TU_CONTRASENA@HOST:PUERTO
```

El archivo `certificate.pem` (descargado del dashboard) valida la conexión. **La forma de indicar el certificado cambia según el cliente** — no pongas las rutas del certificado como parámetros en la URL: eso solo funciona en `redis-py` (Python) y se rompe en `node-redis`/`ioredis`.

### Node.js — node-redis (v4+)
```javascript
import { createClient } from 'redis';
import fs from 'node:fs';

const client = createClient({
  url: 'rediss://default:TU_CONTRASENA@HOST:PUERTO',
  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: PUERTO,
  password: 'TU_CONTRASENA',
  tls: { ca: fs.readFileSync('./certificate.pem') }
});
```

### Python — redis-py
```python
import redis

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

Sustituye `HOST`, `PUERTO` y `TU_CONTRASENA` por los datos de tu base en el dashboard.

## 5. Buenas prácticas y seguridad

* **Archivo .gitignore:** El `certificate.pem` es una credencial de seguridad. Añádelo de inmediato a tu `.gitignore`.
* **Protocolo seguro:** Asegúrate siempre de utilizar el prefijo `rediss://` en vez de `redis://` para garantizar que el driver intente realizar el handshake SSL.

---

## Extra

Para una mejor visualización, mira nuestro vídeo tutorial: https://www.youtube.com/watch?v=WJsgRKsQrCI