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 wydajna i niezwykle szybka baza danych in-memory, która może pełnić kilka ról. Można jej używać jako cache, store key-value, silnika struktur danych czasu rzeczywistego albo systemu publish/subscribe i zdarzeń.
Redis jest znowu open source: od Redis 8 (maj 2025) jest dostępny na licencji GNU AGPLv3. Jeśli wolisz alternatywę drop-in na licencji permisywnej (BSD), społecznościowy fork Valkey jest również dostępny na Stackhero.
Aby ułatwić rozpoczęcie pracy, udostępniliśmy przykłady kodu pokazujące, jak połączyć się z instancją Redis. Znajdziesz je w tym repozytorium GitHub: https://github.com/stackhero-io/redisGettingStarted.
Używanie Redis z Ruby i Ruby on Rails
Konfigurowanie Redis jako systemu cache dla Ruby on Rails
Na początek możesz zainstalować gem redis poleceniem:
bundle add redis
Następnie możesz otworzyć config/environments/production.rb i dodać następującą linię:
config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }
Następnie możesz zdefiniować zmienną środowiskową REDIS_URL. Oto szablon, który możesz dostosować, wpisując własne dane:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Domyślnie cache jest włączony tylko w środowisku produkcyjnym. Jeśli chcesz przetestować cache podczas developmentu, możesz również zaktualizować
config/environments/development.rb. Dodaj tę samą konfigurację co powyżej i uwzględnijconfig.action_controller.perform_caching = true, aby włączyć cache. Prostym sposobem na potwierdzenie, że cache działa, jest uruchomienie konsoli Rails za pomocąbin/rails consolei wypróbowanieRails.cache.write("foo", "bar").
Więcej informacji o używaniu Redis jako cache store w Ruby on Rails znajdziesz w oficjalnej dokumentacji Rails.
Konfigurowanie Redis dla Sidekiq
Sidekiq automatycznie używa serwera Redis zdefiniowanego w zmiennej środowiskowej REDIS_URL.
Możesz ustawić REDIS_URL, wpisując własne dane połączenia w ten sposób:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji o używaniu Sidekiq z Redis znajdziesz w oficjalnej dokumentacji Sidekiq.
Konfigurowanie Redis dla Resque
Podobnie jak Sidekiq, Resque używa serwera Redis zdefiniowanego w zmiennej środowiskowej REDIS_URL.
Możesz ustawić REDIS_URL, wpisując własne dane w ten sposób:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Więcej informacji o używaniu Resque z Redis znajdziesz w oficjalnej dokumentacji Resque.
Obsługa sesji PHP za pomocą Redis
Jeśli chcesz przechowywać sesje PHP w Stackhero for Redis, możesz użyć następującego przykładu:
<?php
// Parse Redis URL
$redis_url = parse_url("rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>")
// Configure session handler
ini_set("session.save_handler", "redis")
ini_set("session.save_path", "tls://{$redis_url["host"]}:{$redis_url["port"]}?auth={$redis_url["pass"]}&timeout=5")
// Start the session
session_start()
?>
Zwiększanie bezpieczeństwa Redis
Dbanie o bezpieczeństwo instancji Redis jest ważne, a kilka prostych działań może zrobić dużą różnicę.
Szyfrowanie komunikacji z Redis (TLS)
Domyślnie Redis nie szyfruje ruchu sieciowego. W Stackhero szyfrowanie TLS jest włączone domyślnie.
Aby z tego skorzystać, możesz skonfigurować klienta Redis tak, aby używał TLS i łączył się przez port <PORT_TLS>. Najlepiej używać <PORT_CLEAR> tylko w szczególnych przypadkach, gdy nieszyfrowany ruch jest odpowiedni, natomiast <PORT_TLS> zapewnia szyfrowaną komunikację.
Dobra wiadomość jest taka, że po stronie serwera nie trzeba konfigurować niczego dodatkowo. Tę część już bierzemy na siebie.
Ochrona Redis przed atakami brute force
Twoja instancja Redis jest chroniona hasłem, a Stackhero domyślnie automatycznie generuje silne hasło. Jeśli zdecydujesz się je zmienić, najlepiej wybrać bardzo długie i złożone hasło.
Redis jest niezwykle szybki i może przetwarzać bardzo dużą liczbę prób uwierzytelnienia. W praktyce oznacza to, że atakujący mógłby potencjalnie sprawdzać nawet do 150,000 kombinacji haseł na sekundę.
Aby wzmocnić ochronę, wymagamy minimalnej długości hasła wynoszącej 16 znaków, co daje około 4.5231285e+74 możliwych kombinacji. Domyślnie Stackhero używa 64-znakowego hasła, co daje około 9.61963e+111 możliwych kombinacji.
Aby zapewnić jeszcze silniejszą ochronę, możesz również skonfigurować reguły firewalla Stackhero z poziomu zakładki Firewall, aby zezwalać na połączenia wyłącznie z własnych adresów IP. To jeden z najskuteczniejszych sposobów na poprawę ogólnego poziomu bezpieczeństwa.