69 lines
2.1 KiB
Markdown
69 lines
2.1 KiB
Markdown
|
|
# 🚀 Guía Rápida: Configurar Caché de Guilds con Appwrite
|
||
|
|
|
||
|
|
## ¿Por qué Appwrite en vez de Redis?
|
||
|
|
|
||
|
|
- ✅ Redis: Solo 30MB disponibles (ya usando 8%)
|
||
|
|
- ✅ Appwrite: Sin límites estrictos, incluido en plan gratis
|
||
|
|
- ✅ Ahorra ~2.4MB de Redis para otros usos
|
||
|
|
|
||
|
|
## Configuración (5 minutos)
|
||
|
|
|
||
|
|
### Opción Recomendada: Manual (Consola de Appwrite) 📝
|
||
|
|
|
||
|
|
**Por qué manual**: La API Key de tu proyecto requiere permisos elevados para crear colecciones. Es más rápido hacerlo desde la consola web.
|
||
|
|
|
||
|
|
📋 **[Sigue esta guía paso a paso](./GUIA_MANUAL_APPWRITE.md)** ← Click aquí
|
||
|
|
|
||
|
|
**Resumen rápido:**
|
||
|
|
1. Crea colección `guild_cache` en Appwrite Console
|
||
|
|
2. Agrega 4 atributos: `guildId`, `name`, `prefix`, `expiresAt`
|
||
|
|
3. Crea 2 índices en `guildId` y `expiresAt`
|
||
|
|
4. Copia el Collection ID
|
||
|
|
5. Agrégalo a `.env` como `APPWRITE_COLLECTION_GUILD_CACHE_ID`
|
||
|
|
|
||
|
|
### Opción Alternativa: Script Automático 🤖
|
||
|
|
|
||
|
|
⚠️ **Requiere API Key con permisos completos** (databases.write, collections.write, etc.)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Si tienes una API Key con permisos suficientes:
|
||
|
|
node scripts/setupGuildCacheCollection.js
|
||
|
|
|
||
|
|
# Luego agrega el ID a .env
|
||
|
|
APPWRITE_COLLECTION_GUILD_CACHE_ID=el_id_generado
|
||
|
|
```
|
||
|
|
|
||
|
|
## Variables de Entorno Necesarias
|
||
|
|
|
||
|
|
Asegúrate de tener en tu `.env` (o Config Vars de Heroku):
|
||
|
|
|
||
|
|
```env
|
||
|
|
APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
|
||
|
|
APPWRITE_PROJECT_ID=tu_project_id
|
||
|
|
APPWRITE_API_KEY=tu_api_key
|
||
|
|
APPWRITE_DATABASE_ID=tu_database_id
|
||
|
|
APPWRITE_COLLECTION_GUILD_CACHE_ID=tu_collection_id_nuevo
|
||
|
|
```
|
||
|
|
|
||
|
|
## Verificación
|
||
|
|
|
||
|
|
Después de desplegar, busca en los logs:
|
||
|
|
|
||
|
|
```
|
||
|
|
✅ Guild config obtenida desde caché (Appwrite)
|
||
|
|
✅ Guild config guardada en caché (Appwrite)
|
||
|
|
🧹 Documentos expirados eliminados de caché
|
||
|
|
```
|
||
|
|
|
||
|
|
## ¿Qué hace esto?
|
||
|
|
|
||
|
|
- **Antes**: Cada mensaje → consulta a PostgreSQL (miles por minuto)
|
||
|
|
- **Ahora**: Cada mensaje → consulta a Appwrite caché (1 vez cada 5 min por servidor)
|
||
|
|
- **Resultado**: 99.8% menos carga en PostgreSQL
|
||
|
|
|
||
|
|
## Más Información
|
||
|
|
|
||
|
|
Lee la documentación completa en:
|
||
|
|
- [README/MIGRACION_CACHE_APPWRITE.md](./MIGRACION_CACHE_APPWRITE.md)
|
||
|
|
- [README/FIX_OUT_OF_MEMORY.md](./FIX_OUT_OF_MEMORY.md)
|