1.9 KiB
1.9 KiB
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
- Geheugen (
- 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:
SELECTvergeten → keys zoek je in de verkeerde DB.
Wanneer werden ze gebruikt?
- Vroeger voor simpele scheiding: bv. DB 0 cache, DB 1 sessions.
- Mogelijkheid om
FLUSHDBte 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.