PostgreSQL vs MongoDB
PostgreSQL, der Open-Source-Champion der relationalen Datenbanken, gegen MongoDB mit seinem flexiblen NoSQL-Dokumentmodell. Wie wählt man die richtige Datenbank für sein Datenmodell?
Vielseitige In-Memory-Datenstrukturen
Einfaches und schnelles verteiltes Caching
| Kategorie | Redis | Memcached |
|---|---|---|
| Performance | 9/10 | 9/10 |
| Erlernbarkeit | 7/10 | 10/10 |
| Ökosystem | 10/10 | 5/10 |
| Community | 10/10 | 5/10 |
| Arbeitsmarkt | 9/10 | 4/10 |
| Zukunftssicherheit | 9/10 | 4/10 |
// Redis — Caching und Pub/Sub (Node.js ioredis)
import Redis from 'ioredis';
const redis = new Redis(process.env.REDIS_URL);
// Caching mit 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;
}
// Rangliste mit Sorted Set
await redis.zadd('leaderboard', 1500, 'ali');
await redis.zadd('leaderboard', 2300, 'ayse');
const top10 = await redis.zrevrange('leaderboard', 0, 9, 'WITHSCORES');
// Rate Limiting
const key = `rate:${ip}`;
const count = await redis.incr(key);
if (count === 1) await redis.expire(key, 60);
if (count > 100) throw new Error('Zu viele Anfragen');// Memcached — einfaches Caching (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
}
);
// Daten cachen (TTL: 1 Stunde)
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;
}
// Cache leeren
await client.delete('home-page');Für neue Projekte ist Redis fast immer die bessere Wahl – dank reichhaltiger Datenstrukturen, Persistenzoptionen und eines aktiven Ökosystems liegt es vor Memcached. Memcached behält seinen Wert nur bei Systemen mit bestehender Infrastrukturinvestition oder bei sehr einfachen, reinen Caching-Bedürfnissen.
Kostenlose Beratung erhaltenBei einfachen Key-Value-Get/Set-Operationen zeigen beide eine ähnliche Performance. Bei paralleler Verbindungslast bietet die Multi-Thread-Architektur von Memcached einen Vorteil. In der Praxis ist der Unterschied vernachlässigbar.