Najbezpieczniej jest obecnie uruchomić Redis w CasaOS jako kontener Docker z trwałym woluminem danych oraz jawną konfiguracją uwierzytelniania i dostępu sieciowego. Poradnik z forum z 2023 roku jest zbyt stary, by służyć jako kompletny przewodnik wdrożeniowy, ponieważ domyślne ustawienia Redis i oczekiwania dotyczące bezpieczeństwa uległy zmianie.
Zacznij od oficjalnego obrazu Redis, pozostaw port 6379 dostępny tylko w sieci LAN lub Docker, zachowaj dane z /data i zdecyduj, czy potrzebujesz trwałego zapisu AOF/RDB, zanim umieścisz w nim dane aplikacji.
Użyj oficjalnego obrazu Redis
Aktualny przewodnik Redis dotyczący Docker opisuje oficjalny obraz redis:<version> i standardowy port 6379.
Użyj Docker Compose w CasaOS
services:
redis:
image: redis:8
container_name: redis
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes", "--requirepass", "CHANGE_ME"]
volumes:
- /DATA/AppData/redis/data:/data
ports:
- "127.0.0.1:6379:6379"
Zmień hasło i dostosuj adres powiązania tylko wtedy, gdy inny host naprawdę potrzebuje bezpośredniego dostępu do Redis.
Zachowaj dane w /data
Bez woluminu hosta dane Redis znajdują się w ulotnej warstwie kontenera i mogą zniknąć po jego ponownym utworzeniu. Mapuj /data na trwały magazyn CasaOS.
Świadomie wybierz tryb trwałego zapisu
AOF rejestruje zapisy i ułatwia odzyskiwanie danych, a migawki RDB są lżejsze. Twoja aplikacja może też tolerować Redis jako tymczasową pamięć podręczną. Dobierz tryb trwałego zapisu do tego, jaką rolę Redis pełni w Twoim przypadku.
Nie udostępniaj Redis bezpośrednio w Internecie
Portu 6379 nie należy udostępniać publicznie. Jeśli inna aplikacja działa na tym samym hoście Docker, umieść oba kontenery w prywatnej sieci Docker i łącz się za pomocą nazwy usługi.
Używaj uwierzytelniania i list kontroli dostępu (ACL)
Pojedyncze ustawienie requirepass jest proste w domowym zastosowaniu, a aktualne wersje Redis obsługują również ACL, które umożliwiają bardziej szczegółowe zarządzanie użytkownikami i poleceniami. Nie pozostawiaj zdalnie dostępnej instancji Redis bez uwierzytelniania.
Przetestuj za pomocą redis-cli
docker exec -it redis redis-cli -a CHANGE_ME ping
Sprawny serwer powinien zwrócić PONG.
Wykonaj kopię zapasową trwałych danych Redis
Jeśli Redis przechowuje ważne dane, zatrzymaj zapisy lub skoordynuj ich wykonywanie, a następnie wykonaj kopię zapasową trwałego woluminu zgodnie z wybraną metodą RDB/AOF. Nie zakładaj, że ponowne uruchomienie kontenera jest równoznaczne z wykonaniem kopii zapasowej.
Przewodnik wdrażania Docker ma takie samo zastosowanie do niestandardowych aplikacji CasaOS.
Przed wdrożeniem produkcyjnym sprawdź limity pamięci
Redis przede wszystkim korzysta z pamięci. Monitoruj rzeczywisty rozmiar zbioru danych i ilość pamięci RAM hosta, zamiast zakładać, że niewielka liczba kluczy oznacza małe zużycie pamięci. W przypadku współdzielonego hosta CasaOS rozważ świadome ustawienie polityki maxmemory dopiero po zrozumieniu, jak aplikacja reaguje na eksmisję kluczy.
Użyj prywatnej sieci Docker dla zależności aplikacji
Jeśli Redis jest używany wyłącznie przez inny kontener, na przykład platformę automatyzacji lub aplikację internetową, umieść obie usługi w tej samej prywatnej sieci Docker i w ogóle nie udostępniaj portu hosta. Aplikacja może łączyć się z redis:6379 po nazwie usługi.
Sprawdź trwałość danych po odtworzeniu kontenera
Po początkowej konfiguracji zapisz testowy klucz, odtwórz kontener z tym samym woluminem i sprawdź, czy klucz jest nadal dostępny. Ten prosty test potwierdza, że ścieżka na hoście rzeczywiście zapewnia trwałość danych, zanim zacznie na niej polegać ważna aplikacja.
FAQ
Z jakiego portu korzysta Redis?
Domyślnie 6379.
Czy mapować port 6379 na wszystkie interfejsy?
Nie. Udostępniaj port tylko tam, gdzie jest to potrzebne, najlepiej na localhost lub w prywatnej sieci Docker/LAN.
Gdzie przechowywać dane Redis?
Mapuj katalog kontenera /data na trwały magazyn CasaOS.
Czy RedisInsight jest mi potrzebny?
Nie. Jest to opcjonalny interfejs do zarządzania; Redis działa bez niego.



