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.

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ędnij config.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ąc Rails.cache.write("foo", "bar").

Więcej szczegółów na temat konfigurowania Redis jako systemu buforowania dla Ruby on Rails znajdziesz w oficjalnej dokumentacji Rails.

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.

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.

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();

?>

Aby zapewnić bezpieczeństwo instancji Redis, kluczowe jest wdrożenie pewnych środków bezpieczeństwa.

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ą.

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.