
En aplicaciones modernas, el rendimiento lo es todo. Si tu API consulta la base de datos en cada request, tarde o temprano tendrás problemas de latencia, escalabilidad y costos.
Aquí es donde entran las estrategias de caché.
En este artículo aprenderás:
✅ Qué son Redis y Caffeine
✅ Cuándo usar uno u otro
✅ Patrones y ejemplos prácticos
✅ Pros y contras
✅ Buenas prácticas
✅ Casos de uso:
✅ Casos de uso:
| Criterio | Redis | Caffeine | |------------------------|---------------------------------------|--------------------------------------| | **Escalabilidad** | Alta (distribuido) | Limitada a una JVM | | **Consistencia** | Compartido entre instancias | Solo local | | **Latencia** | Mayor (requiere red) | Bajísima (in-memory) | | **Persistencia** | Opcional (RDB, AOF) | No | | **Complejidad** | Requiere instalación/configuración | Muy fácil (dependencia Maven) |
Regla práctica:
Dependencia Maven:
<dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency>
@Bean public CacheManager cacheManager() { return new CaffeineCacheManager("usuarios"); }
@Cacheable("usuarios") public Usuario obtenerUsuario(Long id) { return repository.findById(id).orElseThrow(); }
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
spring: redis: host: localhost port: 6379
@Bean public RedisCacheManager cacheManager(RedisConnectionFactory factory) { return RedisCacheManager.builder(factory).build(); }
Cache-aside: Carga desde DB cuando el cache no tiene el dato.
Write-through: Escribe en cache y DB al mismo tiempo.
Read-through: La aplicación siempre lee desde el cache.
TTL y Expiración: Define políticas de caducidad según el caso.
Redis
✔ Distribuido y escalable ✔ Compatible con microservicios ✖ Requiere infraestructura extra ✖ Latencia mayor que en memoria local
Caffeine
✔ Extremadamente rápido ✔ Fácil de implementar ✖ Solo para una JVM ✖ Sin persistencia
Define políticas de expiración claras.
Evita cachear datos altamente volátiles.
Monitorea tasa de aciertos (hit ratio).
Usa caching inteligente en endpoints críticos.
No existe un único ganador:
Usa Caffeine para rendimiento ultra rápido en una sola instancia.
Usa Redis para sistemas distribuidos que necesitan consistencia.
¿Lo mejor? Combinarlos:
Caffeine para cache local.
Redis como capa distribuida.
🔥 Así logras velocidad y consistencia sin compromisos.