Lists, Sets, Sorted Sets, Hashes et Streams
Les super-pouvoirs de Redis
Valeurs simples + opérations atomiques
Compteurs, cache, sessions
Listes doublement chaînées
Queues, timelines, logs
Collections non ordonnées uniques
Tags, relations, unique visitors
Sets ordonnés par score
Leaderboards, indices, ranges
Maps field-value
Objets, profils, configurations
Log append-only
Events, IoT, chat, logs
Cas d'usage : Analytics, Rate limiting, Statistiques temps réel
| Opération | Complexité | Description |
|---|---|---|
| LPUSH/RPUSH | O(1) | Ajout en tête/queue |
| LPOP/RPOP | O(1) | Retrait en tête/queue |
| LRANGE | O(N) | Récupération d'une plage |
Amis, followers, likes
SADD friends:user:1001 "user:1002"
Articles, produits, posts
SADD tag:redis "article:1" "article:2"
Analytics sans doublons
SADD visitors:2024-01-15 "ip:192.168.1.1"
| Aspect | Hash | String JSON |
|---|---|---|
| Accès partiel | ✅ HGET field spécifique | ❌ GET tout + parse |
| Mise à jour partielle | ✅ HSET un seul field | ❌ GET + modify + SET |
| Utilisation mémoire | ✅ Optimisé pour petits objets | ➖ Plus compact pour gros objets |
| Atomicité | ✅ HINCRBY atomique | ❌ Pas d'opération atomique |
| Nested objects | ❌ Un seul niveau | ✅ Structures complexes |
Avantages : Ordre garanti, Consumer groups, Acknowledgment, Replay possible
Historique complet des changements
Audit trail, CQRS
Flux de données temps réel
Température, GPS, métriques
Messages ordonnés avec historique
WhatsApp-like, notifications
Logs applicatifs centralisés
User actions, système events
| Besoin | Structure | Exemple |
|---|---|---|
| Valeur simple, compteurs | String | Cache, sessions, counters |
| File d'attente, timeline | List | Queue jobs, feed social |
| Unicité, appartenance | Set | Tags, followers, online users |
| Classement, ordre | Sorted Set | Leaderboard, index, priority queue |
| Objet avec fields | Hash | User profile, config, product |
| Log ordonné, event stream | Stream | Events, chat, IoT data |
| Structure | Ajout | Accès | Suppression | Recherche |
|---|---|---|---|---|
| String | O(1) | O(1) | O(1) | - |
| List (head/tail) | O(1) | O(N) | O(1) | O(N) |
| Set | O(1) | O(1) | O(1) | O(1) |
| Sorted Set | O(log N) | O(log N) | O(log N) | O(log N) |
| Hash | O(1) | O(1) | O(1) | O(N) |
| Stream | O(1) | O(N) | O(N) | O(N) |
💡 Redis reste ultra-rapide même avec O(N) grâce à l'in-memory
🚀 Prochaine partie : Intégration avec Node.js
Transformez ces structures en applications puissantes !