Redis-databases beheren en optimaliseren in de lokale ontwikkelomgeving van ServBay
Redis is een populaire open-source in-memory datastructuur opslag die breed wordt ingezet voor caching, berichtenqueues, leaderboards en real-time analytics. ServBay, een lokaal webontwikkelplatform speciaal ontworpen voor ontwikkelaars, wordt geleverd met ingebouwde ondersteuning voor Redis. Dit maakt het opzetten en beheren van Redis op macOS uiterst eenvoudig.
In dit artikel leggen we stap voor stap uit hoe je Redis in ServBay efficiënt beheert en gebruikt, inclusief installatie, configuratie, verbinding maken, back-ups, herstel, prestatie-optimalisatie en beveiligingsmaatregelen. Zo kun je het maximale uit de kracht van Redis halen.
Redis installeren en configureren
ServBay wordt standaard geleverd met Redis, je hoeft dus niets apart te downloaden of te installeren. Je kunt het Redis-pakket eenvoudig activeren en beheren via de grafische interface van ServBay.
Redis-pakket activeren en beheren
Je kunt het Redis-pakket beheren via het linkernavigatiemenu van de ServBay-app of via de opdrachtregeltool servbayctl
.
Via de ServBay-app
- Open de ServBay-app.
- Kies
Pakketten
in de linker navigatiebalk. - Vouw de categorie
NoSQL
uit. - Zoek de gewenste versie van
Redis
en activeer of deactiveer deze door de schakelaar om te zetten. Na activeren start ServBay de Redis-service automatisch.
Via de command-line tool servbayctl
ServBay biedt de krachtige servbayctl
CLI-tool waarmee je diensten eenvoudig kunt beheren via de terminal.
bash
# Start een specifieke versie van de Redis-service
servbayctl start redis -all
# Stop een specifieke versie van de Redis-service
servbayctl stop redis -all
# Herstart een specifieke versie van de Redis-service
servbayctl restart redis -all
# Bekijk de status van een specifieke versie van de Redis-service
servbayctl status redis -all
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Redis configureren
ServBay biedt een handige grafische configuratie-interface voor Redis, waarmee je eenvoudig parameters aanpast zonder ingewikkelde configuratiebestanden te hoeven bewerken.
Om Redis-configuraties aan te passen, ga je in het linkernavigatiemenu van de ServBay-app naar Pakketten
- NoSQL
en klik je op het tandwiel naast de ingeschakelde Redis-versie. Of raadpleeg de Redis-configuratie wijzigen documentatie voor meer details. Via de ServBay-interface kun je moeiteloos instellingen voor geheugengrens, persistentiebeleid, beveiliging en andere optimalisaties wijzigen.
Verbinden met de Redis-database
Nadat de Redis-service succesvol is gestart, kun je met diverse clienttools verbinding maken met de Redis-instance om data te bewerken en beheren. Veelgebruikte methoden zijn de opdrachtregeltool redis-cli
of grafische tools.
Verbinden via het command-line tool redis-cli
ServBay bevat de redis-cli
tool, direct beschikbaar vanuit de terminal.
Verbinden via TCP/IP: Dit is de meest gebruikelijke en aanbevolen manier om verbinding te maken met een lokaal of remote Redis-instance. Standaard bindt ServBay Redis aan
127.0.0.1
oflocalhost
via poort6379
.Open de terminal en voer uit:
bashredis-cli -h 127.0.0.1 -p 6379 # Of via localhost # redis-cli -h localhost -p 6379
1
2
3Als je Redis een wachtwoord heeft, kun je na het verbinden authenticeren via het
AUTH
-commando:bashAUTH your_password
1Verbinden via Unix Domain Socket: In de standaardconfiguratie van ServBay wordt TCP/IP aangeraden. Verbinding via Unix Domain Socket is in ServBay niet standaard of aanbevolen, dit wordt met name op servers gebruikt voor inter-process communicatie. Voor lokale ontwikkeling is TCP/IP snel en makkelijk genoeg.
Verbinden via een grafische tool
Er zijn diverse krachtige grafische Redis-clients beschikbaar, zoals Redis Desktop Manager (Another Redis Desktop Manager), Medis en anderen. Deze bieden een visuele interface voor het beheren van Redis-data.
Met Redis Desktop Manager als voorbeeld:
- Open Redis Desktop Manager of je favoriete klant.
- Maak een nieuwe verbinding aan.
- Voer de verbindingsgegevens in:
- Verbindingsnaam (Connection Name): Kies een gemakkelijk herkenbare naam, zoals
ServBay Redis
. - Hostnaam/IP:
127.0.0.1
oflocalhost
. - Poort:
6379
(de standaardpoort in ServBay). - Authenticatie: Als je in ServBay een wachtwoord hebt ingesteld, vink authenticatie aan en vul het wachtwoord in.
- Verbindingsnaam (Connection Name): Kies een gemakkelijk herkenbare naam, zoals
- Test de verbinding en sla op. Na een geslaagde verbinding kun je via de grafische interface Redis-data beheren.
Redis-databasebeheer
Nu je verbonden bent met Redis, kun je verschillende databasebewerkingen uitvoeren, zoals data toevoegen, verwijderen en complexe opdrachten uitvoeren.
Voorbeeld van basis key-value-bewerkingen
Enkele voorbeelden van basisbewerkingen met redis-cli
:
Set key-value pair (SET): Sla een string op.
bashSET mykey "Hello from ServBay Redis!"
1Get key-value pair (GET): Haal de waarde van een sleutel op.
bashGET mykey
1Verwachte output:
"Hello from ServBay Redis!"
.Check of een sleutel bestaat (EXISTS):
bashEXISTS mykey
1Retourneert
1
als de sleutel bestaat, anders0
.Verwijder een key-value pair (DEL): Verwijder een of meerdere sleutels en hun waarden.
bashDEL mykey
1Alle sleutels bekijken (KEYS):
Let op: Gebruik hetKEYS
-commando niet in productie, omdat dit alle sleutels doorloopt en je server kan blokkeren. Gebruik het spaarzaam op je lokale ontwikkelomgeving.bashKEYS *
1
Redis-data back-uppen en herstellen
Back-ups zijn essentieel voor goed databasebeheer. ServBay ondersteunt het native Redis-persistentiebestand voor back-ups.
Handmatig back-uppen van het Redis-persistentiebestand
Standaard gebruikt Redis RDB-persistentie om snapshots van het geheugen op te slaan in het bestand dump.rdb
. Je kunt dit bestand handmatig back-uppen.
Het is aan te raden je handmatige back-ups te bewaren in de door ServBay aangeboden back-upmap voor makkelijk beheer:
bash
/Applications/ServBay/backup/redis/
1
Gebruik onderstaand commando om dump.rdb
handmatig te kopiëren:
bash
# Stel dat je de standaard Redis-datamap gebruikt
cp /Applications/ServBay/db/redis/dump.rdb /Applications/ServBay/backup/redis/dump_$(date +"%Y%m%d%H%M%S").rdb
1
2
2
Toelichting: /Applications/ServBay/db/redis/
is de standaardlocatie voor Redis-data in ServBay. $(date +"%Y%m%d%H%M%S")
voegt een tijdstempel toe aan de bestandsnaam voor eenvoudige versieherkenning.
Herstel van Redis-data
Handmatig herstellen van het Redis-persistentiebestand: Wanneer je een back-upbestand dump.rdb
hebt, kun je dat terugplaatsen in de Redis-datamap en de Redis-service opnieuw starten.
- Stop de Redis-service:bash
servbayctl stop redis -all
1 - Kopieer het back-upbestand terug naar de datamap:bash
cp /Applications/ServBay/backup/redis/your_backup_file.rdb /Applications/ServBay/db/redis/dump.rdb # Zorg ervoor dat je het bestaande dump.rdb bestand overschrijft
1
2 - Start de Redis-service:bashBij het opstarten laadt Redis automatisch de data uit het
servbayctl start redis -all
1dump.rdb
bestand.
Redis-prestatieoptimalisatie
Hoewel prestaties meestal geen knelpunt zijn in lokale ontwikkelomgevingen, is basiskennis van Redis-optimalisaties altijd nuttig. De grafische configuratie in ServBay maakt het aanpassen van deze instellingen eenvoudig.
Geheugenoptimalisatie
Redis is een geheugen-gebaseerde database. Efficiënt geheugenbeheer is cruciaal.
- Stel een maximum geheugengrens in (maxmemory): Voorkomt dat Redis te veel systeemgeheugen gebruikt. Bij het overschrijden van de limiet worden sleutels verwijderd conform het opgegeven beleid.ini
# Voorbeeld: Beperk Redis tot maximaal 256MB geheugen maxmemory 256mb
1
2 - Kies een geschikt geheugenverwijderbeleid (maxmemory-policy): Bepaalt bij een geheugenlimiet welke sleutels verwijderd worden. Veelgebruikte opties:
allkeys-lru
(verwijdert weinig gebruikte sleutels),volatile-lru
(verwijdert weinig gebruikte, met een verlopen tijd ingestelde sleutels).ini# Voorbeeld: Wis minstgebruikte sleutels bij geheugenlimiet maxmemory-policy allkeys-lru
1
2
Deze instellingen zijn via de Redis-configuratie van ServBay eenvoudig aan te passen.
Persistentieoptimalisatie
Redis biedt twee vormen van persistentie: RDB (snapshots) en AOF (Append Only File). Afhankelijk van de waarde van je data, je recovery-eisen en hoeveel dataverlies je kunt toestaan, kies of combineer je deze opties. ServBay heeft meestal RDB standaard geactiveerd.
- RDB-configuratie (save): Definieer wanneer Redis automatisch een snapshot maakt.ini
# Voorbeeld: save 900 1 # Elke 900 seconden bij ten minste één wijziging save 300 10 # Elke 300 seconden bij minstens 10 wijzigingen save 60 10000 # Elke 60 seconden bij minstens 10.000 wijzigingen
1
2
3
4 - AOF-configuratie (appendonly yes, appendfsync): AOF logt elke bewerking afzonderlijk. Hierdoor is data-veiligheid groter, al zijn de bestanden vaak groter en herstel is iets langzamer.ini
# Voorbeeld: Zet AOF aan appendonly yes # Voorbeeld: AOF-bestand elke seconde synchroniseren voor balans tussen performance en veiligheid appendfsync everysec
1
2
3
4
Deze persistentie-instellingen kun je direct aanpassen in de configuratie-interface van ServBay.
Redis-beveiligingsbeheer
Ook in een lokale ontwikkelomgeving is het aan te bevelen elementaire beveiligingsmaatregelen te nemen om ongewenste toegang of datalek te voorkomen.
Wachtwoord instellen
Een wachtwoord instellen voor Redis (authenticatie) is een snelle en effectieve beveiligingsmaatregel.
In de ServBay-applicatie:
- Navigeer in de zijbalk naar
Pakketten
-NoSQL
. - Klik op het tandwiel naast de actieve Redis-versie om naar de configuratie te gaan.
- Zoek de optie voor wachtwoordinstelling (meestal aangeduid als "Wachtwoord vereist" of "Password").
- Vink aan om een wachtwoord in te stellen en kies een sterk wachtwoord.
- Sla de configuratie op en herstart de Redis-service.
Na het instellen van een wachtwoord moeten alle clients zich authenticeren met het commando AUTH your_password
. In het Redis-configuratiebestand heet dit de requirepass
instelling.
Toegang beperken tot localhost
Standaard bindt ServBay Redis aan de lokale adressen 127.0.0.1
of localhost
. Dit betekent dat alleen programma's op dezelfde machine verbinding mogen maken, een veilige standaardinstelling voor lokale ontwikkeling.
Je vindt de optie bind
in het Redis-configuratiemenu van ServBay. Zorg dat deze op 127.0.0.1
of localhost
staat. Zet je deze op 0.0.0.0
, dan is Redis vanaf elk IP-adres bereikbaar, wat in lokale ontwikkeling niet aan te raden is tenzij je een specifieke reden en firewall-configuratie hebt.
ini
# Voorbeeld: Alleen lokale verbinding (de standaard in ServBay)
bind 127.0.0.1
1
2
2
Veelgestelde vragen en oplossingen (FAQ)
Tijdens het gebruik van Redis in ServBay kun je op enkele problemen stuiten. Hier enkele veelvoorkomende issues met hun oplossingen:
1. Geen verbinding met de Redis-service mogelijk
- Beschrijving: Je ontvangt een 'Connection refused' of 'Connection timed out' foutmelding bij het verbinden met
redis-cli
of een grafische tool. - Oplossingen:
- Controleer of de Redis-service draait: Controleer de status in de ServBay-app bij
Pakketten
-NoSQL
, of gebruik de opdrachtservbayctl status redis -all
. - Controleer het adres en poort: Gebruik IP-adres
127.0.0.1
oflocalhost
en poort6379
. - Controleer firewall-instellingen: Normaal geen probleem bij lokale verbindingen, maar bij aangepaste firewalls moet poort 6379 lokaal open zijn.
- Controleer de bind-instelling: In het Redis-configuratiebestand (bind-optie) moet het adres overeenkomen. Controleer dit ook via de ServBay-configuratie.
- Controleer of de Redis-service draait: Controleer de status in de ServBay-app bij
2. Verbinding lukt, maar geen commando’s uitvoeren (Authentication required)
- Beschrijving: Na het verbinden verschijnen fouten als
(error) NOAUTH Authentication required.
wanneer je commando's alsGET
ofSET
probeert. - Oplossing: Redis vereist authenticatie. Je moet vóór het uitvoeren van commando's authenticeren.
- In
redis-cli
: Voer na verbindingAUTH your_password
uit. - In grafische tools: Vul je wachtwoord in het configuratiescherm in.
- In
3. Redis gebruikt te veel geheugen
- Beschrijving: Het Redis-proces verbruikt veel RAM.
- Oplossingen:
- Bekijk het aantal en formaat van sleutels: Gebruik
INFO memory
voor geheugengebruik,DBSIZE
voor het aantal sleutels. Overweeg grote objecten of onnodige sleutels te verwijderen. - Stel een maxmemory-limiet in: Beperk het geheugengebruik via het ServBay-configuratiescherm.
- Pas maxmemory-policy aan: Kies een beleid zodat overtollige (weinig gebruikte) sleutels automatisch verwijderd worden.
- Controleer persistentie-instellingen: Te frequente AOF- of RDB-shapshots kunnen extra geheugen vragen, pas deze indien nodig aan.
- Bekijk het aantal en formaat van sleutels: Gebruik
4. Data wordt niet persistent opgeslagen of gaat verloren
- Beschrijving: Na een restart is data weg of bestanden als
dump.rdb
enappendonly.aof
worden niet geüpdatet. - Oplossingen:
- Check persistentie-instellingen: Controleer in ServBay of
save
(RDB) enappendonly
(AOF) correct staan ingesteld. - Controleer pad en rechten voor data: Het Redis-datapad (
/Applications/ServBay/db/redis/
) moet bestaan en beschrijfbaar zijn voor ServBay. - Handmatig een snapshot opslaan: Voer vanuit
redis-cli
hetSAVE
(synchronisch) ofBGSAVE
(asynchroon) commando uit, en kijk of het bestand wordt bijgewerkt. - Controleer de AOF-bestanden: Zorg dat
appendonly.aof
aanwezig is en bijgewerkt wordt als AOF aan staat.
- Check persistentie-instellingen: Controleer in ServBay of
Samenvatting
Redis is een krachtige in-memory database en met ServBay's ingebouwde, gebruiksvriendelijke beheerfuncties wordt werken met Redis op macOS gemakkelijker dan ooit.
Via de grafische ServBay-interface en het commando servbayctl
kun je moeiteloos Redis-pakketten activeren, configureren en beheren. Of je nu redis-cli
of een grafische client gebruikt, je bewerkt data razendsnel. Dankzij de geïntegreerde back-upmogelijkheden van ServBay zijn je Redis-gegevens veilig, en met flexibele instellingen optimaliseer je naar wens de prestatie en beveiliging.
Als je de methoden uit deze handleiding volgt, kun je Redis in de ServBay-omgeving soepel beheren en inzetten als krachtige databron voor jouw webprojecten.