Skip to main content

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:

  1. Primario: Caché distribuido Redis
  2. Secundario: Caché en memoria (proceso local)
  3. 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 memoria
  • REDIS_CONNECTION=host:port - Anula la cadena de conexión
  • REDIS_CONNECT_TIMEOUT_MS=5000 - Ajusta el tiempo de espera
  • REDIS_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:

  1. Operaciones de Lectura:

    • Verificar primero el caché Redis
    • Si hay falla, leer del sistema de archivos
    • Almacenar resultado en Redis para futuras solicitudes
  2. 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​

  1. Gestión de Conexiones: Use agrupación de conexiones (manejado por StackExchange.Redis)
  2. Manejo de Errores: Implemente patrones de circuit breaker para fallos de Redis
  3. Monitoreo: Configure alertas para tiempo de inactividad de Redis y activación de respaldo
  4. Planificación de Capacidad: Monitoree uso de memoria de Redis y planifique para crecimiento
  5. Estrategia de Respaldo: Persistencia de Redis configurada para durabilidad del caché

Recursos Externos​

Aquí hay algunos recursos que explican el concepto de Redis sidecar:


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.