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