De veiligste huidige manier om Redis op CasaOS te gebruiken, is als Docker-container met een persistente datavolume en expliciete authenticatie en netwerkblootstelling. De forumtutorial uit 2023 is te verouderd om als volledige implementatiehandleiding te gebruiken, omdat de standaardinstellingen en beveiligingsverwachtingen van Redis inmiddels zijn veranderd.
Begin met de officiële Redis-image, houd poort 6379 privé voor het LAN of Docker-netwerk, maak /data persistent en bepaal voordat je applicatiegegevens erin opslaat of je AOF/RDB-persistentie nodig hebt.
Gebruik de officiële Redis-image
De huidige Redis Docker-handleiding documenteert de officiële redis:<version>-image en de standaardpoort 6379.
Gebruik Docker Compose op 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"
Wijzig het wachtwoord en pas het bindadres alleen aan als een andere host daadwerkelijk rechtstreeks toegang tot Redis nodig heeft.
Maak /data persistent
Zonder een hostvolume staan Redis-gegevens in de wegwerpbare containerlaag en kunnen ze verdwijnen wanneer de container opnieuw wordt aangemaakt. Koppel /data aan duurzame CasaOS-opslag.
Kies bewust voor persistentie
AOF registreert schrijfbewerkingen en verbetert de herstelbaarheid, terwijl RDB-snapshots minder zwaar zijn. Je applicatie kan Redis ook als vluchtige cache gebruiken. Stem de persistentiemodus af op de functie die Redis voor je vervult.
Stel Redis niet rechtstreeks bloot aan internet
Poort 6379 mag niet openbaar worden doorgestuurd. Als een andere applicatie op dezelfde Docker-host draait, plaats je beide containers op een privé-Dockernetwerk en verbind je via de servicenaam.
Gebruik authenticatie en ACL's
Eén requirepass is eenvoudig voor thuisgebruik, terwijl het huidige Redis ook ACL's ondersteunt voor gebruikers en opdrachten met fijnmazigere rechten. Laat een op afstand bereikbare Redis-instantie nooit zonder authenticatie.
Test met redis-cli
docker exec -it redis redis-cli -a CHANGE_ME ping
Een gezonde server hoort PONG terug te geven.
Maak een back-up van persistente Redis-gegevens
Als Redis belangrijke gegevens bevat, stop je schrijfbewerkingen of stem je ze af en maak je een back-up van het persistente volume volgens de gekozen RDB/AOF-methode. Ga er niet van uit dat het opnieuw starten van een container hetzelfde is als een back-up.
De Docker-implementatiehandleiding is ook van toepassing op aangepaste CasaOS-apps.
Controleer geheugenlimieten vóór productiegebruik
Redis is software die primair in het geheugen werkt. Houd de werkelijke omvang van de dataset en het RAM-geheugen van de host in de gaten, in plaats van ervan uit te gaan dat weinig sleutels automatisch een kleine voetafdruk betekenen. Overweeg op een gedeelde CasaOS-host pas een doelbewust maxmemory-beleid nadat je begrijpt hoe je applicatie reageert op verwijdering van gegevens.
Gebruik een privé-Dockernetwerk voor applicatieafhankelijkheden
Als Redis alleen bestaat voor een andere container, zoals een automatiseringsplatform of webapp, plaats je beide services op hetzelfde privé-Dockernetwerk en laat je de hostpoort volledig weg. De applicatie kan via de servicenaam verbinding maken met redis:6379.
Controleer persistentie nadat je een container opnieuw hebt aangemaakt
Schrijf na de eerste configuratie een testsleutel, maak de container opnieuw aan met hetzelfde volume en controleer of de sleutel nog beschikbaar is. Deze eenvoudige test bewijst dat het hostpad daadwerkelijk persistent is voordat een belangrijke applicatie ervan afhankelijk wordt.
Veelgestelde vragen
Welke poort gebruikt Redis?
Standaard 6379.
Moet ik 6379 aan elke netwerkinterface koppelen?
Nee. Koppel de poort alleen waar dat nodig is, bij voorkeur aan localhost of een privé-Docker-/LAN-pad.
Waar moeten Redis-gegevens worden opgeslagen?
Koppel de map /data van de container aan persistente CasaOS-opslag.
Heb ik RedisInsight nodig?
Nee. Het is een optionele beheerinterface; Redis werkt ook zonder RedisInsight.
