DynamoDB vs Redis
DynamoDB et Redis sont tous deux qualifiés de NoSQL, mais ils se situent à des niveaux différents de la stack. DynamoDB est une base de données serverless entièrement managée faisant office de source de vérité, qui conserve les données de façon durable sur disque au sein d'une région AWS. Redis est un magasin de structures de données en mémoire — le plus souvent déployé comme cache, magasin de sessions ou courtier de messages devant une base de données durable. Pour de nombreux systèmes, la réponse n'est pas l'un ou l'autre mais DynamoDB comme magasin, Redis (ou DAX) comme cache.
Faut-il utiliser DynamoDB ou Redis ?
Utilise DynamoDB comme ta source de vérité durable : des éléments structurés que tu ne dois pas perdre, lus et écrits par clé à grande échelle. Utilise Redis comme couche en mémoire pour des lectures en microsecondes, des structures de données riches (ensembles ordonnés, streams, compteurs), du cache, de la limitation de débit ou du pub/sub. On les associe couramment — Redis (ou le cache DAX propre à DynamoDB) se place devant DynamoDB plutôt que de le remplacer.
DynamoDB vs Redis en un coup d'œil
| Caractéristique | DynamoDB | Redis |
|---|---|---|
| Modèle de données | NoSQL clé-valeur et documentaire ; éléments typés jusqu'à 400 Ko, regroupés en tables | Clé-valeur en mémoire avec valeurs typées — chaînes, hachages, listes, ensembles, ensembles ordonnés, streams, et plus |
| Rôle principal | Base de données durable faisant office de source de vérité | Cache en mémoire, magasin de sessions/limitation de débit, courtier de messages ; peut être un magasin principal avec persistance activée |
| Langage de requête / API | API native (GetItem, Query, Scan, PutItem, …) plus PartiQL, un langage compatible SQL | Commandes par structure de données (GET, HSET, ZADD, XADD, …) ; pas de langage de requête général ni de jointures ad hoc |
| Durabilité | Données persistées sur disque et répliquées entre zones de disponibilité d'une région | En mémoire par défaut ; la durabilité est optionnelle via des instantanés RDB et/ou une journalisation append-only AOF |
| Cohérence | Cohérence à terme par défaut ; lectures fortement cohérentes disponibles par requête | Un nœud unique est fortement cohérent pour ses clés ; les réplicas sont asynchrones, donc les lectures sur réplica peuvent être en retard |
| Modèle de montée en charge | Partitionnement automatique géré par AWS ; serverless, monte en charge le débit et le stockage | Verticale (limitée par la RAM) plus Redis Cluster pour le sharding horizontal entre nœuds ; capacité limitée par la mémoire |
| Profil de latence | Lectures/écritures de l'ordre de la milliseconde à n'importe quelle échelle | Opérations en microsecondes car les données résident en RAM |
| Modèle tarif / ops | Paiement serverless à la requête ou capacité provisionnée plus stockage ; AWS uniquement, aucun serveur à faire tourner | Open source (auto-hébergé) ou managé (ex. Redis Cloud, ElastiCache) ; généralement facturé selon la mémoire/le débit des nœuds |
| Charges idéales | Enregistrements durables avec accès par clé prévisible nécessitant une latence constante à l'échelle | Cache, classements, compteurs, limitation de débit, files, pub/sub, données de session éphémères |
Quand DynamoDB est le meilleur choix
- Les données doivent survivre. DynamoDB persiste chaque écriture sur disque et la réplique entre les zones de disponibilité. Redis est d'abord en mémoire ; sans persistance RDB/AOF, un redémarrage perd les données, et même avec persistance il est réglé pour la vitesse plutôt que pour une durabilité garantie.
- Tu as besoin d'une source de vérité sur AWS. DynamoDB s'intègre nativement avec IAM, Lambda et Streams, et propose la récupération à un instant précis et les sauvegardes en configuration.
- Ton jeu de travail est plus grand que la mémoire. DynamoDB stocke les données sur disque, donc le coût évolue avec le stockage plutôt qu'avec la RAM. La capacité de Redis est limitée par la mémoire que tu provisionnes.
- Tu veux une montée en charge serverless. La capacité à la demande s'adapte au trafic sans rien à dimensionner ni à patcher.
Quand Redis est le meilleur choix
- Tu as besoin d'une latence en microsecondes. Redis garde les données en RAM, donc les opérations se terminent en microsecondes — un cran en dessous du profil de l'ordre de la milliseconde de DynamoDB.
- Tu as besoin de structures de données riches en mémoire. Les ensembles ordonnés pour les classements, les compteurs atomiques, les listes pour les files et les streams pour la diffusion d'événements sont des opérations Redis de première classe, pas quelque chose que tu modélises dans un magasin durable.
- Les données sont éphémères ou de type cache. Les jetons de session, les fenêtres de limitation de débit et les résultats calculés qui peuvent être régénérés conviennent au modèle en mémoire de Redis, souvent avec un TTL court.
- Tu as besoin de pub/sub ou d'un courtier de messages léger. Redis fournit la publication/abonnement et les primitives de stream prêtes à l'emploi.
Les utiliser ensemble
Le pattern de production le plus courant n'est pas d'en choisir un — c'est de les superposer :
- Garde les enregistrements durables dans DynamoDB comme source de vérité.
- Place Redis devant comme cache de lecture pour les clés chaudes, ou utilise-le pour les classements, les compteurs et la limitation de débit aux côtés de DynamoDB.
- Si tu veux du cache sans faire tourner Redis toi-même, DynamoDB propose DynamoDB Accelerator (DAX) — un cache en mémoire entièrement managé, compatible avec l'API DynamoDB, qui réduit la latence des lectures à cohérence à terme de millisecondes à microsecondes sans modifier l'application. DAX est en read-through/write-through et met en cache les éléments par clé primaire.
DAX face à Redis est lui-même un arbitrage : DAX est spécifique à DynamoDB et prêt à l'emploi, tandis que Redis est un magasin de structures de données polyvalent utilisable sur de nombreuses sources de données mais que tu dois exploiter ou payer un fournisseur managé pour le faire tourner.
Travailler avec DynamoDB
Une fois DynamoDB devenu ton magasin durable, DynoTable est un client desktop natif pour parcourir, éditer et interroger tes tables sur macOS, Windows et Linux. Il lit ta chaîne d'identifiants AWS standard, donc il n'y a rien à migrer — pointe-le vers ta région et tes tables et tes données restent dans DynamoDB. Son SQL Workbench exprime des requêtes de forme relationnelle dans les règles de patterns d'accès de DynamoDB, et son assistant IA tourne sur tes propres identifiants AWS Bedrock.
Pour construire les conditions de clé, les filtres et les expressions de mise à jour dont ton code de cache et de tenue d'enregistrements a besoin, le DynamoDB Expression Builder gratuit génère une sortie SDK, CLI et PartiQL prête à coller, sans installation. DynoTable est une application commerciale à code source fermé ; cette page décrit ce qu'elle fait, pas comment elle est construite.
FAQ
Redis peut-il remplacer DynamoDB ?
En général pas comme source de vérité. Redis est d'abord en mémoire, donc à moins d'activer et de régler sa persistance, il est conçu comme un cache ou un magasin éphémère, pas comme une base de données durable. DynamoDB persiste et réplique chaque écriture entre les zones de disponibilité. Beaucoup d'équipes utilisent les deux : DynamoDB pour les données durables, Redis (ou DAX) comme couche rapide en mémoire devant lui.
DynamoDB ou Redis, lequel est le plus rapide ?
Redis est plus rapide par opération car il sert les données depuis la RAM en microsecondes, tandis que DynamoDB vise des lectures et écritures de l'ordre de la milliseconde depuis un stockage durable. Si tu as besoin de DynamoDB avec une latence de type cache, DAX ramène les lectures à cohérence à terme aux microsecondes sans quitter l'API DynamoDB.
Quel est l'équivalent DynamoDB du cache Redis ?
DynamoDB Accelerator (DAX) est le cache en mémoire intégré et entièrement managé d'AWS pour DynamoDB. Il est compatible avec l'API, donc les appels DynamoDB existants fonctionnent sans changement, et il met en cache les éléments par clé primaire comme une couche read-through/write-through. Il est spécifique à DynamoDB, tandis que Redis est un magasin de structures de données polyvalent.
Voir aussi
- Apprends quand utiliser DynamoDB et comment le TTL DynamoDB expire les éléments éphémères de type cache.
- Modélise des patterns d'accès durables avec le single-table design.
- Construis des expressions avec le DynamoDB Expression Builder gratuit.
- Télécharger DynoTable pour parcourir, interroger et éditer tes tables DynamoDB.
Dernière vérification le 2026-07-12 par rapport à l'AWS DynamoDB Developer Guide officiel et à la documentation Redis. Redis est une marque de son propriétaire respectif ; mentionnée ici à des fins d'identification uniquement.