Wat is 'Redis' en hoe gebruik je het voor ultra-snelle data caching?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Dev-Ops & Infrastructuur voor Traders · 2026-02-15 · 6 min leestijd

Stel je voor: je hebt een prachtige Python trading bot die op basis van een Alpaca of Interactive Brokers API perfecte backtests draait.

Je zit op het puntje van je stoel, want de live-marktdata stroomt binnen. Maar dan... je script hapert. Het duurt seconden voordat een prijs wordt opgehaald, en je mist die ene perfecte entry. Het probleem?

Je database of API moet steeds opnieuw hetzelfde werk doen. Dat is als een Formule 1-coureur die bij elke pitstop eerst zelf zijn banden moet gaan plakken.

Het is tijd voor een versnelling. Het is tijd voor Redis.

Redis is de Ferrari onder de data-opslag. Het is een in-memory key-value store die je data opslaat in het RAM-geheugen van je server, in plaats van op een trage harde schijf. Het is razendsnel, extreem lichtgewicht, en een absolute game-changer voor traders die milliseconden nodig hebben. In deze handleiding bouwen we een simpele, maar krachtige cache voor je trading data.

Waarom Redis voor jouw trading-setup?

Voor een algoritmische trader is snelheid geld. Elke milliseconde vertraging bij het ophalen van historische data of live koersen via een API is potentieel verlies.

Stel je voor dat je een backtesting script draait dat 100.000 data punten nodig heeft.

Zonder Redis moet je broker dit elke keer opnieuw sturen of je lokale database dit uitrekennen. Met Redis sla je deze berekeningen of data punten tijdelijk op. De volgende keer dat je ze nodig hebt, pakt Redis ze in 0,2 milliseconden uit het RAM.

Je API-limit wordt niet gespoten, en je bot reageert als een cheetah. Het is niet alleen voor snelheid. Het is ook voor het delen van data tussen scripts. Je Python script voor 'Signalen' kan een koers in Redis zetten, en je 'Order Execution' script kan die direct uitlezen zonder dat ze direct met elkaar praten. Het is de lijm in je infrastructuur.

Wat je nodig hebt (Voorbereiding)

Je hebt geen supercomputer nodig. Een simpele VPS (Virtual Private Server) van DigitalOcean of Vultr met 1GB RAM is meer dan genoeg om te beginnen.

Reken op een prijs vanaf €5-6 per maand. Als je al een server draait voor je trading bot, dan kun je die waarschijnlijk direct gebruiken. Kies voor het beste operating system voor trading en je hebt verder nodig:

  • Root-toegang tot je Linux-server (meestal Ubuntu 22.04).
  • Python 3.8+ geïnstalleerd.
  • Een terminal (SSH client) om commando's uit te voeren.
  • Je favoriete code editor (VS Code, PyCharm).

Stap 1: Installeer Redis op je server

We beginnen met de basis. Redis moet op je server draaien.

  1. Update je package manager:
    sudo apt update && sudo apt upgrade -y
    Veelgemaakte fout: Vergeet de -y niet, anders moet je bij elke update 'ja' typen.
  2. Installeer Redis:
    sudo apt install redis-server -y
    Dit haalt de nieuwste versie uit de Ubuntu repositories. Meestal versie 6.x of 7.x.
  3. Start en Enable de service:
    sudo systemctl enable redis-server
    sudo systemctl start redis-server
    Zorg ervoor dat Redis automatisch opstart als je server reboot.

Log in via SSH en gebruik Tmux om je bot-sessies actief te houden. Dit duurt ongeveer 2 minuten.

Check even of het werkt. Typ: redis-cli ping. Als je PONG terugkrijgt, ben je er bijna.

Stap 2: De Python-omgeving opzetten

Nu gaan we de brug slaan tussen Redis en je trading bots. We gebruiken de redis-py library.

Het is het meest stabiele commando-pakket voor Python. Maak een nieuwe map aan voor je project of gebruik je bestaande bot-omgeving.

  1. Maak een virtuele omgeving (aanbevolen):
    python3 -m venv redis_env
    source redis_env/bin/activate
    Dit houdt je dependencies schoon en gescheiden van je systeem.
  2. Installeer de Redis library:
    pip install redis
    Dit is een lichte library (ongeveer 50KB). Hij is geoptimaliseerd voor snelheid.
  3. Maak je script:
    Maak een bestand genaamd trade_cache.py.

Stap 3: De basiscode voor caching (Praktijk)

Hieronder zie je een typisch scenario. We halen een 'fictieve' koers op via een broker API, maar we willen niet elke seconde de API lastigvallen.

We gebruiken Redis als buffer. Loop dit script. De eerste keer zie je "[API] Cache leeg...".

import redis
import time

# Verbinding maken met Redis op localhost
r = redis.Redis(host='localhost', port=6379, db=0)

def get_bitcoin_price():
    # 1. Kijk eerst in de cache (Redis)
    cached_price = r.get("BTC_EUR")
    
    if cached_price:
        print(f"[CACHE] Opgeslagen prijs gevonden: {cached_price.decode('utf-8')}")
        return float(cached_price)
    
    # 2. Als cache leeg is, simuleer een langzame API-call
    print("[API] Cache leeg, ophalen van broker API...")
    time.sleep(1)  # Simuleert 1 seconde vertraging
    real_price = 45000.50  # Dit zou je echte API call zijn
    
    # 3. Sla de nieuwe waarde op in Redis met een TTL (Time To Live)
    # We zetten hem op 10 seconden. Daarna is hij weer "oud".
    r.setex("BTC_EUR", 10, real_price)
    
    return real_price

# Test loop
while True:
    price = get_bitcoin_price()
    time.sleep(2) # Wacht 2 seconden voor de volgende ronde

De keren erna zie je "[CACHE] Opgeslagen prijs...". Na 10 seconden is de cache verlopen en moet de API weer aangesproken worden.

Dit bespaart je honderden API calls per uur.

Stap 4: Geavanceerd gebruik voor backtesting

Voor backtesting wil je soms grote datasets bewaren, zoals een 'Pandas DataFrame' van de afgelopen 30 dagen. Redis kan niet direct een DataFrame opslaan, maar wel JSON.

  1. Importeer json en pandas:
    Je hebt import json en import pandas as pd nodig.
  2. Data opslaan:
    Gebruik r.set("key", json.dumps(data)). Dit zet je dataframe om naar een tekst string die Redis snapt.
  3. Data uitlezen:
    Gebruik pd.DataFrame(json.loads(r.get("key"))). Dit bouwt je DataFrame in een fractie van een seconde terug.

Dit is hoe je het doet zonder snelheid te verliezen. Pro Tip: Als je grote datasets (meer dan 10MB) in Redis moet stoppen, overweeg dan RedisJSON (een module). Voor de meeste trading data is de standaard JSON-serialisatie echter sneller genoeg, mits je rekening houdt met de stabiliteit van je verbinding.

Veelgemaakte fouten bij traders

Er zijn een paar valkuilen waar beginnende traders intrappen. Pas hier goed op.

  • Cache Invalidation: Je haalt een prijs op, maar de markt verandert. Je vergeet de TTL (Time To Live) in te stellen. Je bot handelt op basis van oude data.
    Fix: Gebruik altijd r.setex(key, time, value). Zet de tijd op een logische waarde (bijv. 5 seconden voor HFT, 1 uur voor fundamentele data).
  • Geheugenlekken: Je slaat unieke keys op voor elke seconde of elke tick (bijv. "BTC_12:00:01", "BTC_12:00:02"). Je RAM loopt vol en je server crasht.
    Fix: Hergebruik vaste keys voor dezelfde data (bijv. "BTC_LIVE_PRICE"). Of zet een maximum geheugenlimiet in je Redis config.
  • Geen error handling: Als Redis down gaat, crasht je bot omdat hij niet weet hoe hij zonder cache moet werken.
    Fix: Wrap je Redis calls in een try...except redis.ConnectionError blok. Als het misgaat, moet je bot gewoon doorschakelen naar de langzame API.

Checklist: Is je Redis caching klaar voor de markt?

Voordat je live gaat met je bot, loop deze lijst even na. Het duurt maar 2 minuten en het voorkomt dat je op een maandagochtend je positie mist.

  • Service actief: Draait Redis? (Check met redis-cli ping).
  • Python lib geinstalleerd: Werkt import redis zonder errors?
  • TTL ingesteld: Verloopt data automatisch?
  • Fallback logica: Wat doet je bot als Redis offline is?
  • Snelle check: Zie je de snelheidswinst?

Als je alle vinkjes hebt, draai je script. Je voelt nu hoe je bot ineens vloeiend loopt. Je API-limit blijft intact en je data is sneller dan je concurrenten. Welkom in de wereld van professionele infrastructuur.

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Over Alex de Vries

Alex is een ervaren quantitatief analist en Python-ontwikkelaar die complexe trading concepten vertaalt naar begrijpelijke, praktische handleidingen voor zowel beginners als gevorderden.

Volgende stap
Bekijk alle artikelen over Dev-Ops & Infrastructuur voor Traders
Ga naar overzicht →