- New Build and startup procedures for all services, compliant for both docker, podman and k8s
This commit is contained in:
48
documentation/redis_db_best_practices.md
Normal file
48
documentation/redis_db_best_practices.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user