Valkey: Uso con Ruby

Cómo conectar Valkey con Ruby

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución Valkey cloud lista para usar que proporciona una serie de beneficios, incluyendo:

  • Interfaz web UI Redis Commander incluida.
  • Tamaño y transferencias de mensajes ilimitados.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.

Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de Valkey cloud hosting de Stackhero!

Valkey es una base de datos en memoria de código abierto diseñada para un rendimiento y flexibilidad excepcionales. Derivada de Redis tras adoptar una licencia más restrictiva, Valkey ofrece una alternativa completamente de código abierto. Proporciona compatibilidad perfecta con las bibliotecas de Redis, lo que la convierte en un excelente reemplazo para proyectos que anteriormente dependían de Redis.

A menudo referida como una base de datos NoSQL, Valkey admite una amplia gama de estructuras de datos como cadenas, hashes, listas, conjuntos y conjuntos ordenados, entre otros. Con sus operaciones de alta velocidad y capacidad para manejar grandes volúmenes de datos, Valkey se ha convertido en una opción popular para casos de uso como caché, análisis en tiempo real, mensajería y más.

Valkey se integra sin esfuerzo con Ruby y Ruby on Rails, mejorando el rendimiento, la escalabilidad y la flexibilidad. Los desarrolladores de Ruby pueden aprovechar Valkey para implementar características como caché, gestión de sesiones, procesamiento de datos en tiempo real y manejo de tareas en segundo plano, entre otros.

Aquí hay algunas formas comunes en que Valkey se utiliza con Ruby y Ruby on Rails:

  1. Caché: Valkey puede servir como una capa de caché en aplicaciones Rails, acelerando los tiempos de respuesta y reduciendo la carga de la base de datos.

  2. Procesamiento de tareas en segundo plano: Valkey puede operar como un backend para bibliotecas populares de procesamiento de tareas en segundo plano como Sidekiq y Resque, mejorando el rendimiento y la fiabilidad de las tareas en segundo plano en aplicaciones Rails.

  3. Características en tiempo real: La funcionalidad Pub/Sub de Valkey permite a las aplicaciones Rails proporcionar características en tiempo real como notificaciones, sistemas de chat y análisis en tiempo real facilitando el paso rápido y eficiente de mensajes entre componentes de la aplicación.

Stackhero ofrece una solución Ruby cloud lista para usar que proporciona una serie de beneficios, incluyendo:

  • Despliegue su aplicación en segundos con un simple git push.
  • Use su propio nombre de dominio y benefíciese de la configuración automática de certificados HTTPS para una mayor seguridad.
  • Disfrute de la tranquilidad con copias de seguridad automáticas, actualizaciones con un clic y precios sencillos, transparentes y predecibles.
  • Obtenga un rendimiento óptimo y una seguridad robusta gracias a una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: ¡solo toma 5 minutos probar la solución de alojamiento en la nube Ruby de Stackhero!

Para configurar Valkey como sistema de caché en Ruby on Rails, siga estos pasos:

  1. Instale el gem redis:
bundle add redis
  1. Edite el archivo config/environments/production.rb y agregue la siguiente configuración:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
  1. Defina la variable de entorno VALKEY_URL. Use una URL en el siguiente formato, reemplazando <yourPassword> y <XXXXXX> con sus credenciales:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Para más detalles sobre la configuración de Valkey como sistema de caché para Ruby on Rails, puede consultar la documentación oficial de Rails aquí.

Sidekiq usará automáticamente el servidor Valkey definido por la variable de entorno REDIS_URL.

Puede establecer la variable de entorno REDIS_URL así, solo reemplazando <password> y <XXXXXX> con su información:

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

Por defecto, Sidekiq está configurado de manera que no tolera ninguna perturbación de red. Para mejorar esto, sugerimos modificar la configuración del cliente Sidekiq en config/initializers/sidekiq.rb para mejorar la estabilidad:

# Archivo config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
  config.redis = {
    network_timeout: 5, # Establecer el tiempo de espera a 5 segundos
    pool_timeout: 5, # Establecer el tiempo de espera a 5 segundos
    reconnect_attempts: Array.new(240, 0.5) # Intentar reconectar 240 veces, cada 0.5 segundos (120 segundos/2 minutos en total) antes de desencadenar un error
  }
end

Esta configuración asegura que si su servidor Valkey se vuelve inaccesible, el cliente intentará reintentos durante un período de 2 minutos antes de informar un error. Esto da tiempo al servidor Valkey para reiniciarse, por ejemplo. Dependiendo del uso de su Sidekiq, puede ajustar esta configuración para adaptarse mejor a sus requisitos específicos.

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

Para usar Valkey con Resque, establezca la variable de entorno REDIS_URL de la siguiente manera, reemplazando <yourPassword> y <XXXXXX> con sus credenciales:

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

Resque usará automáticamente el servidor Valkey especificado en la variable de entorno REDIS_URL.

Para más información sobre el uso de Resque con Valkey, puede referirse a la documentación de Resque aquí.