Redis®*: Configuración de Redis con Sidekiq

Esta documentación forma parte de la guía Uso con Ruby. Consulte la guía completa aquí: Cómo conectar Redis con Ruby.

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución Redis cloud lista para usar que proporciona numerosas ventajas, entre ellas:

  • Interfaz web Redis Commander incluida.
  • Tamaño y transferencia de mensajes ilimitados.
  • Actualizaciones sencillas con solo un clic.
  • Rendimiento óptimo y seguridad reforzada gracias a una infraestructura privada y dedicada.

Ahorre tiempo y simplifique su trabajo: solo necesita 5 minutos para probar la solución de alojamiento Redis cloud de Stackhero.

Sidekiq utilizará automáticamente el servidor Redis definido en la variable de entorno REDIS_URL.

Puede definir la variable de entorno REDIS_URL de la siguiente manera, sustituyendo <password> y <XXXXXX> por su información:

REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Por defecto, la configuración de Sidekiq no contempla tolerancia ante interrupciones de red. Para mejorar esto, le recomendamos modificar la configuración del cliente Sidekiq en config/initializers/sidekiq.rb para aumentar la estabilidad:

# Archivo config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Establece el timeout en 5 segundos
    pool_timeout: 5, # Establece el timeout en 5 segundos
    reconnect_attempts: Array.new(240, 0.5) # Intenta reconectar 240 veces, cada 0,5 segundos (120 segundos/2 minutos en total) antes de lanzar un error
  }
end

Esta configuración garantiza que si su servidor Redis deja de estar disponible, el cliente intentará reconectarse durante 2 minutos antes de informar de un error. Esto da tiempo, por ejemplo, a que el servidor Redis se reinicie. Dependiendo del uso que haga de Sidekiq, puede ajustar este parámetro para adaptarlo a sus necesidades específicas.

Para más información sobre Sidekiq y Redis, puede consultar la documentación oficial aquí.