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.

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ędnij config.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 console i wypróbowanie Rails.cache.write("foo", "bar").

Więcej informacji o używaniu Redis jako cache store w Ruby on Rails znajdziesz w oficjalnej dokumentacji Rails.

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.

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.

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

?>

Dbanie o bezpieczeństwo instancji Redis jest ważne, a kilka prostych działań może zrobić dużą różnicę.

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.

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.