feat(cache): migrar caché de guilds de Redis a Appwrite para mejorar rendimiento y persistencia
This commit is contained in:
68
README/SETUP_APPWRITE_CACHE.md
Normal file
68
README/SETUP_APPWRITE_CACHE.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# 🚀 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)
|
||||
Reference in New Issue
Block a user