Files
eveAI/documentation/redis_db_best_practices.md

49 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.