49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# Redis Databases (db=0..15) — Best Practices anno 2025
|
||
|
||
## Wat zijn Redis DB’s?
|
||
- 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
|
||
- ACL’s (geen DB-specifieke rechten)
|
||
- Replicatie
|
||
- In **Redis Cluster** bestaat enkel DB 0.
|
||
|
||
---
|
||
|
||
## Nadelen van meerdere DB’s
|
||
- **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**: ACL’s 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 DB’s.
|
||
|
||
---
|
||
|
||
## 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 ACL’s 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 DB’s** voor isolatie of multi-tenancy.
|
||
❌ **Verlaat je niet op DB’s** voor security of scaling.
|
||
❌ **Verwacht geen verschil in eviction/persistence** tussen DB’s.
|
||
|
||
---
|
||
|
||
## Conclusie
|
||
- Redis-databases zijn een **historisch artefact**.
|
||
- Ze voegen **geen echte isolatie** toe en schalen niet mee naar Cluster.
|
||
- **Prefix + ACL’s** zijn de moderne manier om te scheiden.
|
||
- Voor echte isolatie: gebruik meerdere Redis-instanties of Redis Cluster.
|