Files
eveAI/documentation/redis_db_best_practices.md

1.9 KiB
Raw Permalink Blame History

Redis Databases (db=0..15) — Best Practices anno 2025

Wat zijn Redis DBs?

  • Redis ondersteunt meerdere logische databases (0..15, standaard).
  • Elke DB heeft een eigen keyspace, maar alles deelt dezelfde instance:
    • Geheugen (maxmemory)
    • Eviction-policy
    • Persistence-bestanden
    • ACLs (geen DB-specifieke rechten)
    • Replicatie
  • In Redis Cluster bestaat enkel DB 0.

Nadelen van meerdere DBs

  • Geen isolatie: eviction en memory zijn gedeeld.
  • Niet cluster-compatibel: alleen DB 0 werkt.
  • Meer connection pools: elke DB → aparte pool → meer sockets.
  • Moeilijke security: ACLs gelden niet per DB, enkel via key-prefixes.
  • Operationele verwarring: SELECT vergeten → keys zoek je in de verkeerde DB.

Wanneer werden ze gebruikt?

  • Vroeger voor simpele scheiding: bv. DB 0 cache, DB 1 sessions.
  • Mogelijkheid om FLUSHDB te doen zonder alle data kwijt te zijn.
  • Legacy clients/tools verwachtten meerdere DBs.

Moderne best practices

Gebruik altijd DB 0 (zeker als je ooit naar Redis Cluster wil).
Organiseer data met key-prefixes (bv. cache:, sess:, celery:).
Gebruik ACLs per prefix voor toegangscontrole.
Splits workloads in aparte instances als je echte isolatie nodig hebt (cache vs sessions vs Celery).
Monitor eviction en memory (used_memory, evicted_keys) in plaats van te vertrouwen op DB-splitsing.

Gebruik geen meerdere DBs voor isolatie of multi-tenancy.
Verlaat je niet op DBs voor security of scaling.
Verwacht geen verschil in eviction/persistence tussen DBs.


Conclusie

  • Redis-databases zijn een historisch artefact.
  • Ze voegen geen echte isolatie toe en schalen niet mee naar Cluster.
  • Prefix + ACLs zijn de moderne manier om te scheiden.
  • Voor echte isolatie: gebruik meerdere Redis-instanties of Redis Cluster.