Redis®*: Używanie z Ruby
Jak połączyć Redis z Ruby
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Redis cloud, które zapewnia szereg korzyści, w tym:
- Wbudowany web UI
Redis Commander.- Nieograniczona wielkość i transfer wiadomości.
- Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
- 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 hostingu Redis cloud od Stackhero!
Redis (Remote Dictionary Server) to otwartoźródłowa, pamięciowa baza danych, która oferuje wyjątkową wydajność i elastyczność.
Często określany jako baza danych NoSQL, Redis 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 ilości danych, Redis stał się popularnym wyborem do cache'owania, analityki czasu rzeczywistego, systemów wiadomości oraz wielu innych zastosowań.
Redis można bezproblemowo zintegrować z Ruby i Ruby on Rails, aby zwiększyć wydajność, skalowalność i elastyczność aplikacji. Wykorzystując Redis, programiści Ruby mogą wdrażać różne funkcjonalności, takie jak cache'owanie, zarządzanie sesjami, przetwarzanie danych w czasie rzeczywistym czy obsługa zadań w tle.
Oto kilka najczęstszych sposobów wykorzystania Redis z Ruby i Ruby on Rails:
- Cache'owanie: Redis może być używany jako magazyn cache w aplikacjach Rails, co przyspiesza czas odpowiedzi i zmniejsza obciążenie bazy danych.
- Przetwarzanie zadań w tle: Redis służy jako backend dla popularnych bibliotek do obsługi zadań w tle, takich jak Sidekiq i Resque, poprawiając wydajność i niezawodność tych procesów w aplikacjach Rails.
- Funkcje czasu rzeczywistego: Funkcjonalność Pub/Sub w Redis umożliwia aplikacjom Rails wdrażanie funkcji czasu rzeczywistego, takich jak powiadomienia, systemy czatu czy analityka na żywo, poprzez szybkie i efektywne przekazywanie wiadomości pomiędzy różnymi 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 Redis jako systemu cache dla Ruby on Rails
Aby rozpocząć, należy zainstalować gem "redis":
bundle add redis
Następnie edytuj plik config/environments/production.rb i dodaj następującą linię:
config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }
Na końcu zdefiniuj zmienną środowiskową REDIS_URL. Możesz użyć poniższego adresu URL, zamieniając <yourPassword> i <XXXXXX> na swoje dane:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji na temat konfiguracji Redis jako systemu cache dla Ruby on Rails znajdziesz w oficjalnej dokumentacji Rails tutaj.
Konfiguracja Redis z Sidekiq
Sidekiq automatycznie wykorzysta serwer Redis zdefiniowany w zmiennej środowiskowej REDIS_URL.
Możesz ustawić zmienną środowiskową REDIS_URL w ten sposób, zamieniając <password> i <XXXXXX> na swoje dane:
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 zmodyfikowanie 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, # Ustawia timeout na 5 sekund
pool_timeout: 5, # Ustawia timeout na 5 sekund
reconnect_attempts: Array.new(240, 0.5) # Próbuje połączyć się ponownie 240 razy, co 0,5 sekundy (łącznie 120 sekund/2 minuty) zanim zgłosi błąd
}
end
Ta konfiguracja zapewnia, że jeśli Twój serwer Redis 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 Redis, na przykład. W zależności od wykorzystania Sidekiq, możesz dostosować to ustawienie do własnych potrzeb.
Więcej informacji na temat Sidekiq i Redis znajdziesz w oficjalnej dokumentacji tutaj.
Konfiguracja Redis z Resque
Resque automatycznie wykorzysta serwer Redis zdefiniowany w zmiennej środowiskowej REDIS_URL.
Możesz ustawić zmienną środowiskową REDIS_URL w ten sposób, zamieniając <yourPassword> i <XXXXXX> na swoje dane:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji na temat Resque i Redis znajdziesz w oficjalnej dokumentacji tutaj.