Naar inhoud springen
Alle handleidingen

Apps ·

Een Redis-cache opzetten en verbinden over TLS

Bestel een beheerde Redis, vind host, poort en wachtwoord, en verbind met rediss:// vanuit redis-cli, Node en Python met geverifieerd certificaat. Inclusief de IP-toegangslijst en de keybrowser.

Een beheerde Redis is de snelste cache of sessieopslag die je aan een applicatie kunt toevoegen: bestel hem, kopieer de connection string, wijs je framework ernaartoe. De onze is bereikbaar over TLS met een publiek vertrouwd certificaat, dus je client verifieert de server zoals hij een website verifieert. Deze gids bestelt er een en verbindt vanuit redis-cli, Node en Python.

Wat je nodig hebt

  • Een Headpat Space-account met een geverifieerd e-mailadres en ingevulde factuurgegevens.
  • Een Redis-client die TLS ondersteunt. Alle actuele clients doen dat.

1. Bestel Redis

  1. Log in op het paneel, open Apps in de zijbalk en klik op App aanmaken.
  2. Zoek onder Template naar Redis en selecteer het.
  3. Kies onder Pakket voor cache of persistent. Een cache houdt alles alleen in het geheugen; een herstart maakt hem leeg, wat prima is voor sessies en gecachete pagina's. Persistent schrijft een append-only log naar schijf en komt na een herstart met zijn data terug; kies dat voor wachtrijen, tellers of alles wat je zou missen.
  4. Vul een Weergavenaam in, kies een versie als je een specifieke nodig hebt, vink het vakje aan dat het opzetten meteen mag beginnen, klik op App deployen en rond de betaling af.

De instantie is binnen een minuut klaar. Wacht tot de app-pagina hem als draaiend toont.

2. Vind je verbindingsgegevens

Open de app onder Apps. De kaart Database-verbinding toont Host en Poort. De poort is een eigen poort, niet 6379, en de hostnaam is uniek voor jouw instantie. Klik op Tonen naast Inloggegevens om het Wachtwoord en de Connection string te zien:

rediss://:JOUW_WACHTWOORD@JOUW_HOST:JOUW_POORT/0

Let op de dubbele s in rediss://: die zegt de client dat hij TLS moet gebruiken. Elk veld heeft een kopieerknop. Behandel het wachtwoord als elk ander geheim.

3. Verbinden met redis-cli

redis-cli --tls --sni JOUW_HOST -h JOUW_HOST -p JOUW_POORT -a JOUW_WACHTWOORD

--sni is belangrijk: het certificaat wordt gekozen op basis van de hostnaam die de client aankondigt, en redis-cli kondigt er geen aan tenzij je het zegt. Zonder die optie mislukt de handshake met een certificaatfout. De meeste andere clients sturen de hostnaam standaard mee.

redis-cli gebruikt de vertrouwde certificaatautoriteiten van je besturingssysteem. Op een minimaal Linux-image zonder die bundel wijs je hem er expliciet naar met --cacert /etc/ssl/certs/ca-certificates.crt. Je ziet dan de prompt; PING antwoordt PONG.

4. Verbinden vanuit je applicatie

De meeste bibliotheken nemen de connection string zoals hij is, meestal uit een omgevingsvariabele:

REDIS_URL=rediss://:JOUW_WACHTWOORD@JOUW_HOST:JOUW_POORT/0

Node met ioredis:

import Redis from "ioredis";

const redis = new Redis(process.env.REDIS_URL);
await redis.set("greeting", "hello");
console.log(await redis.get("greeting"));

Python met redis-py:

import os
import redis

r = redis.from_url(os.environ["REDIS_URL"])
r.set("greeting", "hello")
print(r.get("greeting"))

Beide verifiëren het servercertificaat tegen de vertrouwde roots van het systeem en controleren de hostnaam. Niets te downloaden, geen optie om verificatie uit te zetten. Vraagt een oudere bibliotheek om een CA-bestand, geef dan de bundel van je besturingssysteem; het certificaat leidt terug naar een publieke root.

Beperk wie mag verbinden

Standaard accepteert de instantie verbindingen van elk adres dat het wachtwoord kent. Op de app-pagina beperkt de kaart IP-toegangslijst dat tot de adressen die je opgeeft, bijvoorbeeld het IP van je applicatieserver. Voeg het adres toe, klik op opslaan, en de kaart toont dat de toegang beperkt is.

Kijk erin

De kaart Databaseconsole op de app-pagina heeft een tab Keys die keys op patroon toont met hun type en resterende levensduur, en een tab Commando's die elk Redis-commando uitvoert. Handig om te controleren dat je applicatie schrijft wat je verwacht; zie Je database bekijken en bevragen vanuit het paneel.

Goed om te weten

  • Het certificaat komt van Let's Encrypt en wordt automatisch vernieuwd; verbindingen worden door een vernieuwing niet onderbroken.
  • Redis heeft geen gebruikers, alleen het ene wachtwoord. Het wisselen ervan betekent voorlopig een nieuwe instantie; houd het wachtwoord buiten repositories en schermafbeeldingen.
  • Geheugen is wat telt. De kaart CPU & geheugen toont hoe dicht je bij de limiet zit. Redis krijgt niet de opdracht zelf keys weg te gooien; groeit hij boven het pakket uit, dan wordt hij herstart en begint een cache-pakket leeg. Laat keys die je niet eeuwig nodig hebt verlopen, en upgrade voordat de lijn bovenin vlak loopt.
  • Back-ups volgen het pakket: van een persistente instantie wordt op het schema in de kaart Back-ups een snapshot gemaakt, een cache heeft niets dat het bewaren waard is.

Zelf aan de slag?

Hulp nodig?

Lukt iets uit deze gids niet, stuur ons dan een bericht en we helpen je verder.

Neem contact op