PostgreSQL vs MongoDB
Relational PostgreSQL versus document MongoDB: data model fit, ACID guarantees, scaling, performance, and which database wins for modern application workloads.
Çok amaçlı in-memory veri yapıları
Basit ve hızlı dağıtık önbellekleme
// Redis — önbellekleme ve pub/sub (Node.js ioredis)
import Redis from 'ioredis';
const redis = new Redis(process.env.REDIS_URL);
// TTL'li önbellekleme
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;
}
// Sorted set ile liderlik tablosu
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('Çok fazla istek');// Memcached — basit önbellekleme (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
}
);
// Veri önbellekleme (TTL: 1 saat)
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;
}
// Önbelleği temizle
await client.delete('home-page');Yeni projeler için Redis neredeyse her zaman daha iyi bir tercih — zengin veri yapıları, kalıcılık seçenekleri ve aktif ekosistemi ile Memcached'in önüne geçiyor. Memcached yalnızca mevcut altyapı yatırımı olan veya çok basit, saf önbellekleme ihtiyacı olan sistemlerde değerini koruyor.
Ücretsiz Danışmanlık AlBu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.
Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.
Basit key-value get/set işlemlerinde ikisi benzer performans gösterir. Paralel bağlantı yükünde Memcached'in multi-thread mimarisi avantaj sağlar. Pratik uygulamalarda fark ihmal edilebilir düzeydedir.