Redis®*: Pierwsze kroki
Szybki przewodnik po rozpoczęciu pracy z Redis
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Redis cloud, które zapewnia wiele korzyści, w tym:
- Włączony web UI
Redis Commander.- Nieograniczona wielkość i transfer wiadomości.
- Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
- Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
Oszczędzaj czas i upraszczaj sobie życie: wystarczy 5 minut, aby wypróbować rozwiązanie hostingu Redis cloud Stackhero!
Redis to potężna, niezwykle szybka baza danych w pamięci, która służy wielu celom. Może działać jako system buforowania, magazyn klucz-wartość, ułatwiać sortowanie danych w czasie rzeczywistym oraz funkcjonować jako kolejka publikacji-subskrypcji i system zdarzeń.
ostrzeżenie Redis zmienił swoją licencję i nie jest już open source. Społeczność, deweloperzy i firmy stworzyli fork Redis o nazwie Valkey, który jest bezpośrednim zamiennikiem Redis. Zalecamy używanie Valkey zamiast Redis.
Aby pomóc w rozpoczęciu, udostępniliśmy kilka przykładów kodu pokazujących, jak połączyć się z instancją Redis. Można je znaleźć w następującym repozytorium GitHub: https://github.com/stackhero-io/redisGettingStarted.
Używanie Redis z Ruby i Ruby on Rails
Konfiguracja Redis jako systemu buforowania dla Ruby on Rails
Na początek, warto zainstalować gem "redis". Można to zrobić, uruchamiając:
bundle add redis
Następnie otwórz plik config/environments/production.rb i dodaj następującą linię:
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }
Na koniec zdefiniuj zmienną środowiskową REDIS_URL. Oto szablon, którego możesz użyć, zastępując swoimi danymi:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
ostrzeżenie Domyślnie buforowanie jest włączone tylko w środowisku produkcyjnym. Jeśli chcesz przetestować buforowanie podczas rozwoju, możesz edytować plik
config/environments/development.rb. Dodaj powyższą konfigurację i uwzględnijconfig.action_controller.perform_caching = true, aby włączyć buforowanie. Prostym sposobem na sprawdzenie, czy buforowanie działa, jest uruchomienie konsoli Rails (za pomocąbin/rails console) i przetestowanie, piszącRails.cache.write("foo", "bar").
Więcej szczegółów na temat konfigurowania Redis jako systemu buforowania dla Ruby on Rails znajdziesz w oficjalnej dokumentacji Rails.
Konfiguracja Redis dla Sidekiq
Sidekiq automatycznie wykorzysta serwer Redis określony w zmiennej środowiskowej REDIS_URL.
Możesz zdefiniować zmienną środowiskową REDIS_URL z twoimi specyficznymi informacjami w następujący sposób:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji na temat używania Sidekiq z Redis znajdziesz w oficjalnej dokumentacji Sidekiq.
Konfiguracja Redis dla Resque
Resque, podobnie jak Sidekiq, będzie używać serwera Redis zdefiniowanego w zmiennej środowiskowej REDIS_URL.
Ustaw REDIS_URL z twoimi danymi w następujący sposób:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji na temat używania Resque z Redis znajdziesz w oficjalnej dokumentacji Resque.
Obsługa sesji PHP z Redis
Możesz użyć poniższego kodu, aby przechowywać sesje PHP na Stackhero dla Redis:
<?php
// Parsowanie URL Redis
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');
// Konfiguracja obsługi sesji
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");
// Rozpoczęcie sesji
session_start();
?>
Zwiększanie bezpieczeństwa Redis
Aby zapewnić bezpieczeństwo instancji Redis, kluczowe jest wdrożenie pewnych środków bezpieczeństwa.
Szyfrowanie komunikacji z Redis (TLS)
Domyślnie Redis nie szyfruje komunikacji. Jednak na Stackhero, domyślnie włączyliśmy szyfrowanie TLS.
Aby z tego skorzystać, skonfiguruj klienta Redis do używania szyfrowania TLS i połącz się z instancją przez port <PORT_TLS>. Unikaj używania <PORT_CLEAR>, ponieważ nie szyfruje danych.
Najlepsze jest to, że nie musisz robić nic więcej po swojej stronie, zajęliśmy się skomplikowaną konfiguracją.
Ochrona Redis przed atakami brute force
Twoja instancja Redis jest zabezpieczona hasłem, które Stackhero automatycznie ustawia na bardzo bezpieczną wartość domyślną. Jeśli zdecydujesz się je zmienić, upewnij się, że wybierasz niezwykle skomplikowane hasło.
Redis jest bardzo wydajny, ale nie ma wbudowanych zabezpieczeń przed atakami brute force, co pozwala atakującemu potencjalnie przetestować do 150 000 kombinacji haseł na sekundę.
Aby przeciwdziałać temu ryzyku, wymuszamy minimalną długość hasła wynoszącą 16 znaków (co daje około 4.5231285e+74 kombinacji). Domyślnie używamy hasła o długości 64 znaków (co daje około 9.61963e+111 kombinacji).
Dla zwiększenia bezpieczeństwa i znacznego zmniejszenia ryzyka ataków brute force, zaleca się skonfigurowanie ustawień zapory Stackhero (dostępnych w zakładce "Firewall"), aby ograniczyć połączenia wyłącznie do twoich adresów IP. Ten krok jest kluczowy dla wzmocnienia twojej postawy bezpieczeństwa.