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.