🔴
data

Redis

Base de donnees en memoire ultra-rapide utilisee comme cache, broker de messages et store temps reel.

Definition

Redis (Remote Dictionary Server) est un store de donnees en memoire open source, utilise comme cache, base de donnees, message broker et file d'attente. Il offre des temps de reponse sub-milliseconde, ce qui en fait le choix n°1 pour le caching haute performance.

Cree par Salvatore Sanfilippo en 2009, Redis est aujourd'hui utilise par pratiquement toutes les entreprises tech (Twitter, GitHub, Airbnb, etc.).

Structures de donnees

Redis n'est pas un simple store cle-valeur. Il supporte des structures de donnees riches :

Structure Commandes Cas d'usage
Strings GET, SET, INCR Cache, compteurs, sessions
Lists LPUSH, RPOP, LRANGE Files d'attente, historique
Sets SADD, SMEMBERS, SINTER Tags, relations, deduplication
Sorted Sets ZADD, ZRANGE, ZRANK Classements, leaderboards
Hashes HSET, HGET, HGETALL Objets (profils utilisateur)
Streams XADD, XREAD, XGROUP Event log, messaging

Cas d'usage courants

Cache applicatif

// Verifier le cache avant la BDD
const cached = await redis.get('user:123');
if (cached) return JSON.parse(cached);

const user = await db.query('SELECT * FROM users WHERE id = 123');
await redis.set('user:123', JSON.stringify(user), 'EX', 3600); // 1h TTL
return user;

Sessions utilisateur

// Stocker une session
await redis.hset('session:abc', { userId: 123, role: 'admin', lastAccess: Date.now() });
await redis.expire('session:abc', 86400); // 24h

Rate limiting

const key = 'ratelimit:' + ip;
const count = await redis.incr(key);
if (count === 1) await redis.expire(key, 60); // 60s window
if (count > 100) throw new Error('Rate limit exceeded');

Pub/Sub (notifications temps reel)

// Publisher
await redis.publish('notifications', JSON.stringify({ userId: 123, message: 'Nouveau message' }));

// Subscriber
redis.subscribe('notifications', (message) => {
  console.log('Notification:', JSON.parse(message));
});

Persistance

Redis est principalement en memoire, mais offre deux modes de persistance :

  • RDB (Redis Database) : snapshots periodiques sur disque
  • AOF (Append Only File) : log de chaque operation

Pour une durabilite maximale, activez les deux.

Solutions hebergees

Solution Type Prix
Upstash Serverless Pay-per-request
Redis Cloud Managed A partir de 5$/mois
AWS ElastiCache Managed A partir de ~15$/mois
Fly.io Redis Managed A partir de 5$/mois

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

Redis ou Memcached ?
Redis dans la quasi-totalite des cas. Redis offre des structures de donnees riches, la persistance, le Pub/Sub et le clustering. Memcached est plus simple mais limite aux cles-valeurs simples.
Redis peut-il remplacer une base de donnees ?
Pour certains cas d'usage (sessions, cache, leaderboards), oui. Mais Redis stocke tout en RAM, ce qui est couteux pour de gros volumes. Pour les donnees principales, utilisez PostgreSQL + Redis comme cache.
Combien de memoire Redis consomme-t-il ?
Redis utilise environ 1 Go de RAM pour 1 million de cles simples. Les structures complexes (hashes, sorted sets) consomment plus. Surveillez avec INFO MEMORY et configurez maxmemory avec une politique d'eviction.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.