backend-mcp
Version:
Generador automático de backends con Node.js, Express, Prisma y módulos configurables. Servidor MCP compatible con npx para agentes IA. Soporta PostgreSQL, MySQL, MongoDB y SQLite.
277 lines (252 loc) • 6.44 kB
YAML
module:
name: "cache"
version: "1.0.0"
description: "Sistema de caché distribuido con Redis y estrategias avanzadas"
category: "performance"
author: "Backend MCP"
license: "MIT"
triggers:
- condition: "user_wants_caching"
value: true
- condition: "needs_performance"
value: true
- condition: "requires_scaling"
value: true
- condition: "has_high_traffic"
value: true
- keywords:
- "cache"
- "redis"
- "caching"
- "performance"
- "memory"
- "speed"
- "optimization"
- "distributed cache"
entry_points:
service: "templates/cache.service.ts.hbs"
config: "templates/redis.config.ts.hbs"
decorator: "templates/cacheable.decorator.ts.hbs"
interceptor: "templates/cache.interceptor.ts.hbs"
manager: "templates/cache.manager.ts.hbs"
dependencies:
required: []
optional:
- "database"
- "logging"
- "auth"
environment_variables:
required:
- REDIS_URL
optional:
- REDIS_HOST
- REDIS_PORT
- REDIS_PASSWORD
- REDIS_DB
- REDIS_CLUSTER_NODES
- CACHE_TTL_DEFAULT
- CACHE_MAX_MEMORY
- CACHE_EVICTION_POLICY
- ENABLE_CACHE_COMPRESSION
- CACHE_KEY_PREFIX
features:
- "redis-integration"
- "memory-caching"
- "distributed-caching"
- "cache-invalidation"
- "cache-warming"
- "cache-statistics"
- "cache-compression"
- "cache-serialization"
- "ttl-management"
- "cache-patterns"
- "cache-decorators"
- "cache-interceptors"
api_endpoints:
- "GET /cache/stats"
- "POST /cache/invalidate"
- "POST /cache/warm"
- "DELETE /cache/clear"
- "GET /cache/keys"
- "GET /cache/health"
generated_files:
- "src/cache/cache.service.ts"
- "src/cache/redis.config.ts"
- "src/cache/cacheable.decorator.ts"
- "src/cache/cache.interceptor.ts"
- "src/cache/cache.manager.ts"
- "src/cache/cache.controller.ts"
- "src/cache/cache.module.ts"
- "src/cache/interfaces/cache.interface.ts"
- "src/cache/strategies/cache-strategy.interface.ts"
integration:
redis_features:
- "key-value-storage"
- "pub-sub-messaging"
- "lua-scripting"
- "clustering"
- "persistence"
database_integration:
- "query-result-caching"
- "model-caching"
- "relationship-caching"
auth_integration:
- "session-caching"
- "token-caching"
- "user-data-caching"
cache_strategies:
- name: "write-through"
description: "Escribe en caché y base de datos simultáneamente"
- name: "write-behind"
description: "Escribe en caché primero, base de datos después"
- name: "cache-aside"
description: "Aplicación maneja caché y base de datos por separado"
- name: "refresh-ahead"
description: "Refresca caché antes de que expire"
eviction_policies:
- "allkeys-lru"
- "allkeys-lfu"
- "volatile-lru"
- "volatile-lfu"
- "allkeys-random"
- "volatile-random"
- "volatile-ttl"
- "noeviction"
data_types:
- name: "string"
description: "Valores de texto simples"
- name: "hash"
description: "Mapas clave-valor"
- name: "list"
description: "Listas ordenadas"
- name: "set"
description: "Conjuntos únicos"
- name: "sorted-set"
description: "Conjuntos ordenados con puntuación"
- name: "json"
description: "Objetos JSON complejos"
patterns:
- name: "cache-warming"
description: "Precarga de datos frecuentemente accedidos"
- name: "cache-invalidation"
description: "Eliminación selectiva de datos obsoletos"
- name: "cache-tagging"
description: "Agrupación de claves relacionadas"
- name: "distributed-locking"
description: "Bloqueos distribuidos con Redis"
- name: "rate-limiting"
description: "Limitación de tasa con contadores"
performance_features:
- "connection-pooling"
- "pipeline-operations"
- "batch-operations"
- "compression"
- "serialization-optimization"
- "memory-optimization"
monitoring:
metrics:
- "hit-rate"
- "miss-rate"
- "memory-usage"
- "connection-count"
- "operation-latency"
- "throughput"
alerts:
- "high-memory-usage"
- "low-hit-rate"
- "connection-failures"
- "slow-operations"
usage_examples:
- "API response caching"
- "Database query result caching"
- "Session storage"
- "Rate limiting"
- "Distributed locking"
- "Real-time analytics"
ai_instructions: |
Use this module when:
- User mentions "cache", "redis", "performance", "speed", "memory"
- Project needs to handle high traffic
- Database queries are slow or frequent
- Need session storage or rate limiting
Always combine with:
- logging module (for cache monitoring)
- database module (for cache-aside pattern)
Configuration steps:
1. Setup Redis connection
2. Configure cache strategies
3. Setup cache decorators and interceptors
4. Configure TTL and eviction policies
5. Setup monitoring and alerts
6. Implement cache warming strategies
automation:
scripts:
- "setup-redis"
- "warm-cache"
- "monitor-cache"
- "optimize-cache"
testing:
unit_tests:
- "cache.service.test.ts"
- "cache.manager.test.ts"
- "cacheable.decorator.test.ts"
integration_tests:
- "redis-integration.test.ts"
- "cache-strategies.test.ts"
e2e_tests:
- "cache-performance.e2e.test.ts"
- "cache-invalidation.e2e.test.ts"
performance:
benchmarks:
- "cache-hit-latency"
- "cache-miss-latency"
- "memory-efficiency"
- "throughput-capacity"
optimization:
- "connection-pooling"
- "pipeline-batching"
- "compression-algorithms"
- "serialization-formats"
scaling:
strategies:
- "redis-clustering"
- "read-replicas"
- "sharding"
- "consistent-hashing"
limits:
- "max-memory: configurable"
- "max-connections: 10000"
- "max-key-size: 512MB"
- "max-value-size: 512MB"
security:
features:
- "redis-auth"
- "ssl-tls-encryption"
- "access-control"
- "data-encryption"
best_practices:
- "secure-connections"
- "key-namespacing"
- "access-logging"
- "data-sanitization"
compatibility:
node_versions:
- ">=16.0.0"
frameworks:
- "nestjs"
- "express"
- "fastify"
redis_versions:
- ">=6.0.0"
deployment:
- "docker"
- "kubernetes"
- "aws-elasticache"
- "azure-redis"
- "gcp-memorystore"
documentation:
- "README.md"
- "API.md"
- "CONFIGURATION.md"
- "PERFORMANCE.md"
- "TROUBLESHOOTING.md"