PostgreSQL vs MongoDB
PostgreSQL, le champion open-source des bases de données relationnelles, face à MongoDB, la base de données NoSQL orientée documents et flexible. Comment choisir la bonne base de données selon votre modèle de données ?
Structures de données en mémoire polyvalentes
Mise en cache distribuée simple et rapide
| Catégorie | Redis | Memcached |
|---|---|---|
| Performance | 9/10 | 9/10 |
| Facilité d'apprentissage | 7/10 | 10/10 |
| Écosystème | 10/10 | 5/10 |
| Communauté | 10/10 | 5/10 |
| Marché de l'emploi | 9/10 | 4/10 |
| Pérennité | 9/10 | 4/10 |
// Redis — mise en cache et pub/sub (Node.js ioredis)
import Redis from 'ioredis';
const redis = new Redis(process.env.REDIS_URL);
// Mise en cache avec TTL
async function getUserCached(userId: string) {
const cached = await redis.get(`user:${userId}`);
if (cached) return JSON.parse(cached);
const user = await db.users.findById(userId);
await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));
return user;
}
// Classement avec sorted set
await redis.zadd('leaderboard', 1500, 'ali');
await redis.zadd('leaderboard', 2300, 'ayse');
const top10 = await redis.zrevrange('leaderboard', 0, 9, 'WITHSCORES');
// Limitation de débit
const key = `rate:${ip}`;
const count = await redis.incr(key);
if (count === 1) await redis.expire(key, 60);
if (count > 100) throw new Error('Çok fazla istek');// Memcached — mise en cache simple (Node.js memjs)
import Memcached from 'memjs';
const client = Memcached.Client.create(
process.env.MEMCACHIER_SERVERS!,
{
username: process.env.MEMCACHIER_USERNAME,
password: process.env.MEMCACHIER_PASSWORD
}
);
// Mise en cache de données (TTL : 1 heure)
async function getPageCached(path: string) {
const { value } = await client.get(path);
if (value) return value.toString();
const html = await renderPage(path);
await client.set(path, html, { expires: 3600 });
return html;
}
// Vider le cache
await client.delete('home-page');Pour les nouveaux projets, Redis est presque toujours le meilleur choix — grâce à ses structures de données riches, ses options de persistance et son écosystème actif, il devance Memcached. Memcached conserve sa valeur uniquement pour les systèmes ayant déjà investi dans cette infrastructure ou ayant des besoins de mise en cache très simples et purs.
Obtenir une consultation gratuitePour de simples opérations get/set clé-valeur, les deux offrent des performances similaires. Sous forte charge de connexions parallèles, l'architecture multi-thread de Memcached procure un avantage. En pratique, la différence est négligeable.