Redis (Remote Dictionary Server) is een krachtige, open-source in-memory datastructuur store die fungeert als database, cache-systeem en message broker. In tegenstelling tot traditionele databases die gegevens op schijf opslaan, bewaart Redis data primair in het werkgeheugen (RAM), wat resulteert in extreem snelle lees- en schrijfoperaties.
Redis werd ontwikkeld door Salvatore Sanfilippo en is sinds 2009 beschikbaar. Het onderscheidt zich door zijn eenvoud, hoge prestaties en veelzijdigheid. Redis ondersteunt verschillende datastructuren zoals strings, hashes, lists, sets, sorted sets, bitmaps, hyperloglogs en geospatial indexes, waardoor het geschikt is voor diverse toepassingen.
Belangrijkste kenmerken
- In-memory opslag: Data wordt in RAM opgeslagen voor microseconde-snelle toegang
- Persistentie opties: Mogelijkheid om data periodiek naar schijf te schrijven
- Replicatie: Master-slave replicatie voor hoge beschikbaarheid
- Atomic operaties: Alle operaties zijn atomisch, wat zorgt voor data-integriteit
- Pub/Sub messaging: Ingebouwde publish-subscribe functionaliteit
- Lua scripting: Ondersteuning voor server-side scripting
- TTL (Time To Live): Automatische verwijdering van data na een bepaalde tijd
Architectuur en werking
Redis werkt volgens een single-threaded model voor command execution, wat betekent dat alle commando's sequentieel worden uitgevoerd. Dit elimineert de complexiteit van concurrency en zorgt voor voorspelbaar gedrag. Ondanks de single-threaded architectuur kan Redis duizenden verzoeken per seconde verwerken dankzij de snelheid van in-memory operaties.
Redis biedt twee persistentie-mechanismen: RDB (Redis Database) snapshots en AOF (Append Only File) logging. RDB maakt periodieke snapshots van de dataset, terwijl AOF elke schrijfoperatie logt. Beide methoden kunnen gecombineerd worden voor optimale data-veiligheid.
Redis Cluster en schaalbaarheid
Voor grote applicaties biedt Redis Cluster automatische data-sharding over meerdere nodes. Dit maakt horizontale schaalbaarheid mogelijk en verhoogt de beschikbaarheid. Redis Sentinel biedt daarnaast high availability door automatische failover en monitoring van Redis instances.
