Valkey: Używanie z Ruby
Jak połączyć Valkey z Ruby
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Valkey cloud, które zapewnia szereg korzyści, w tym:
- Wbudowany interfejs webowy Redis Commander.
- Nielimitowana wielkość i transfer wiadomości.
- Bezproblemowe aktualizacje jednym kliknięciem.
- Optymalna wydajność i wysoki poziom bezpieczeństwa dzięki prywatnej, dedykowanej infrastrukturze.
Oszczędzaj czas i uprość sobie życie: wystarczy 5 minut, aby przetestować rozwiązanie Valkey cloud hosting od Stackhero!
Valkey to otwartoźródłowa baza danych in-memory zaprojektowana z myślą o wyjątkowej wydajności i elastyczności. Powstała jako fork Redis po przejściu tego projektu na bardziej restrykcyjną licencję, oferując w pełni otwartoźródłową alternatywę. Zapewnia pełną kompatybilność z bibliotekami Redis, dzięki czemu jest doskonałym zamiennikiem dla projektów, które wcześniej korzystały z Redis.
Valkey jest często określany jako baza danych NoSQL i obsługuje szeroki zakres struktur danych, takich jak stringi, hashe, listy, zbiory (sets) oraz zbiory uporządkowane (sorted sets) i inne. Dzięki bardzo szybkim operacjom oraz możliwości obsługi dużych wolumenów danych, Valkey jest popularnym wyborem do zastosowań takich jak cache, analityka w czasie rzeczywistym, systemy wiadomości i wiele innych.
Valkey integruje się bezproblemowo z Ruby i Ruby on Rails, zwiększając wydajność, skalowalność i elastyczność. Programiści Ruby mogą wykorzystać Valkey do implementacji funkcji takich jak cache, zarządzanie sesjami, przetwarzanie danych w czasie rzeczywistym czy obsługa zadań w tle.
Oto kilka typowych sposobów wykorzystania Valkey z Ruby i Ruby on Rails:
-
Cache: Valkey może pełnić rolę warstwy cache w aplikacjach Rails, przyspieszając czas odpowiedzi i zmniejszając obciążenie bazy danych.
-
Przetwarzanie zadań w tle: Valkey może działać jako backend dla popularnych bibliotek do obsługi zadań w tle, takich jak Sidekiq i Resque, poprawiając wydajność i niezawodność zadań w aplikacjach Rails.
-
Funkcje czasu rzeczywistego: Funkcjonalność Pub/Sub w Valkey umożliwia aplikacjom Rails oferowanie funkcji czasu rzeczywistego, takich jak powiadomienia, systemy czatu czy analityka w czasie rzeczywistym, poprzez szybkie i wydajne przekazywanie komunikatów pomiędzy komponentami aplikacji.
Stackhero oferuje gotowe do użycia rozwiązanie Ruby cloud, które zapewnia szereg korzyści, w tym:
- Wdrażaj swoją aplikację w kilka sekund za pomocą prostego
git push.- Używaj własnej nazwy domeny i korzystaj z automatycznej konfiguracji certyfikatów HTTPS dla zwiększonego bezpieczeństwa.
- Zyskaj spokój dzięki automatycznym backupom, aktualizacjom jednym kliknięciem oraz prostemu, przejrzystemu i przewidywalnemu cennikowi.
- Osiągnij optymalną wydajność i wysokie bezpieczeństwo dzięki prywatnej, dedykowanej infrastrukturze.
Oszczędzaj czas i uprość sobie życie: wystarczy 5 minut, aby wypróbować rozwiązanie Stackhero do hostingu Ruby w chmurze!
Konfiguracja Valkey jako systemu cache dla Ruby on Rails
Aby skonfigurować Valkey jako system cache w Ruby on Rails, wykonaj następujące kroki:
- Zainstaluj gem
redis:
bundle add redis
- Edytuj plik
config/environments/production.rbi dodaj następującą konfigurację:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
- Zdefiniuj zmienną środowiskową
VALKEY_URL. Użyj adresu URL w poniższym formacie, zastępując<yourPassword>i<XXXXXX>swoimi danymi:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji na temat konfiguracji Valkey jako systemu cache dla Ruby on Rails znajdziesz w oficjalnej dokumentacji Rails tutaj.
Konfiguracja Valkey z Sidekiq
Sidekiq automatycznie użyje serwera Valkey zdefiniowanego przez zmienną środowiskową REDIS_URL.
Możesz ustawić zmienną środowiskową REDIS_URL w następujący sposób, zastępując <password> i <XXXXXX> swoimi danymi:
REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Domyślnie konfiguracja Sidekiq nie przewiduje żadnej tolerancji na zakłócenia sieciowe. Aby to poprawić, zalecamy modyfikację konfiguracji klienta Sidekiq w pliku config/initializers/sidekiq.rb, aby zwiększyć stabilność:
# Plik config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
config.redis = {
network_timeout: 5, # Ustaw timeout na 5 sekund
pool_timeout: 5, # Ustaw timeout na 5 sekund
reconnect_attempts: Array.new(240, 0.5) # Spróbuj połączyć się ponownie 240 razy, co 0,5 sekundy (łącznie 120 sekund/2 minuty) zanim zostanie zgłoszony błąd
}
end
Ta konfiguracja zapewnia, że jeśli Twój serwer Valkey stanie się niedostępny, klient będzie próbował ponownie połączyć się przez 2 minuty zanim zgłosi błąd. Daje to czas na ponowne uruchomienie serwera Valkey, na przykład podczas restartu. W zależności od sposobu użycia Sidekiq w Twojej aplikacji, możesz dostosować to ustawienie do własnych potrzeb.
Więcej informacji o Sidekiq i Valkey znajdziesz w oficjalnej dokumentacji tutaj.
Konfiguracja Valkey z Resque
Aby używać Valkey z Resque, ustaw zmienną środowiskową REDIS_URL w następujący sposób, zastępując <yourPassword> i <XXXXXX> swoimi danymi:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Resque automatycznie użyje serwera Valkey określonego w zmiennej środowiskowej REDIS_URL.
Więcej informacji na temat używania Resque z Valkey znajdziesz w dokumentacji Resque tutaj.