Documentación de Redis Sidecar para ExFlow OnPrem Cache
Descripción General
El Redis sidecar en ExFlow OnPrem Cache implementa una capa de caché distribuida con capacidades inteligentes de respaldo. Sirve como un mecanismo de optimización de rendimiento y resistencia para operaciones de archivos, operando de forma independiente junto al contenedor de la aplicación principal.
Patrón de Arquitectura
Funciones Principales
1. Caché de Metadatos de Archivos
Redis actúa como una capa de caché de alto rendimiento para operaciones de archivos, almacenando metadatos de acceso frecuente para reducir las E/S del sistema de archivos.
Lo que se Almacena en Caché:
- Metadatos de Archivos: Tamaño, tipo de contenido, ETag, fechas de última modificación
- Información de Contenedores: Estructura de directorios y listados de archivos
- Estado de Salud: Diagnósticos de conexión y métricas de rendimiento
- Formato de Claves de Caché:
filerepo:{container}:{filename}(prefijo configurable)
2. Sistema Inteligente de Respaldo
Su implementación incluye lógica sofisticada de respaldo:
Jerarquía de Respaldo:
- Primario: Caché distribuido Redis
- Secundario: Caché en memoria (proceso local)
- Terciario: Acceso directo al sistema de archivos (sin caché)
Configuración
Basándose en su appsettings.json, aquí están las configuraciones clave del Redis sidecar:
Anulaciones de Variables de Entorno:
REDIS_DISABLED=true- Fuerza el caché en memoriaREDIS_CONNECTION=host:port- Anula la cadena de conexiónREDIS_CONNECT_TIMEOUT_MS=5000- Ajusta el tiempo de esperaREDIS_RETRY=3- Modifica los intentos de reintento
Beneficios de Rendimiento
Implementación del Patrón Cache-Aside
Su FileRepositoryService probablemente implementa el patrón cache-aside:
-
Operaciones de Lectura:
- Verificar primero el caché Redis
- Si hay falla, leer del sistema de archivos
- Almacenar resultado en Redis para futuras solicitudes
-
Operaciones de Escritura:
- Escribir al sistema de archivos
- Actualizar/invalidar caché Redis
- Asegurar consistencia del caché
Mejoras de Rendimiento Esperadas:
- Consultas de Metadatos: 10-100x más rápido (Redis vs sistema de archivos)
- Listados de Archivos: Mejora significativa para directorios grandes
- E/S Reducidas: Menos operaciones del sistema de archivos bajo carga
- Escalabilidad: Múltiples instancias de la aplicación comparten estado del caché
Características Operacionales
Monitoreo de Salud
Su implementación incluye seguimiento integral de la salud de Redis:
Diagnósticos Disponibles:
/api/redis/status- Estado de conexión Redis en tiempo real/api/health/ready- Preparación general del sistema incluyendo Redis- Marcas de tiempo de fallo/restauración de conexión
- Seguimiento de errores e IDs de correlación
Estrategia de Invalidación de Caché
Basándose en sus operaciones de archivos:
- Carga de Archivos: Caché invalidado en escritura exitosa
- Eliminación de Archivos: Entrada de caché eliminada inmediatamente
- Actualización de Metadatos: Caché actualizado con nuevos valores
- Expiración TTL: Limpieza automática de entradas obsoletas
Problemas de Rendimiento:
- Monitorear ratios de aciertos del caché a través de logs de Redis
- Verificar latencia de red entre la aplicación y Redis
- Verificar uso de memoria de Redis y políticas de desalojo
Comportamiento de Respaldo:
- La aplicación continúa funcionando con caché en memoria
- El rendimiento se degrada pero la funcionalidad se mantiene
- Monitorear logs para activación de respaldo
Consideraciones de Seguridad
Seguridad de Red
- Redis típicamente se ejecuta solo en red interna
- No se requiere autenticación en el patrón sidecar
- Considere Redis AUTH para entornos de producción
Sensibilidad de Datos
- Solo metadatos almacenados en caché (no contenido de archivos)
- Las claves de caché no contienen información sensible
- La expiración automática previene exposición de datos obsoletos
Monitoreo y Observabilidad
Métricas Clave a Seguir
- Tiempo de actividad/inactividad de conexión Redis
- Ratios de aciertos/fallos del caché
- Uso de memoria en Redis
- Latencia de red a Redis
- Frecuencia de activación de respaldo
Análisis de Logs
Su aplicación proporciona logging rico para operaciones Redis:
- Establecimiento/fallos de conexión
- Operaciones de caché y rendimiento
- Eventos de activación de respaldo
- Resultados de verificaciones de salud
Mejores Prácticas
- Gestión de Conexiones: Use agrupación de conexiones (manejado por StackExchange.Redis)
- Manejo de Errores: Implemente patrones de circuit breaker para fallos de Redis
- Monitoreo: Configure alertas para tiempo de inactividad de Redis y activación de respaldo
- Planificación de Capacidad: Monitoree uso de memoria de Redis y planifique para crecimiento
- Estrategia de Respaldo: Persistencia de Redis configurada para durabilidad del caché
Recursos Externos
Aquí hay algunos recursos que explican el concepto de Redis sidecar:
- Microsoft Azure: Azure Cache for Redis - Patrón Sidecar
- Documentación de Kubernetes: Contenedores Sidecar
- Documentación de Redis: Redis como Caché
- Martin Fowler: Patrón Cache-Aside
Esta implementación de Redis sidecar proporciona una solución de caché robusta y lista para producción que mejora el rendimiento mientras mantiene la confiabilidad del sistema a través de mecanismos inteligentes de respaldo.