Redis Cache: Kurulum, Yapılandırma ve Kullanım Rehberi

z

zafer ak

Yazar

30 December 2025 3 dakika okuma 284 görüntülenme
Redis Cache: Kurulum, Yapılandırma ve Kullanım Rehberi
Redis in-memory cache sistemi kurulumu, veri tipleri, persistence, replication, cluster yapılandırması ve uygulama entegrasyonu.

Redis, açık kaynak kodlu bir in-memory veri yapısı deposudur. Cache, session yönetimi, message broker ve gerçek zamanlı analytics için kullanılır.

Redis Cache Server

Redis Neden Kullanılır?

  • Yüksek performans: Milisaniye altı yanıt süreleri
  • Esnek veri yapıları: String, List, Set, Hash, Sorted Set
  • Persistence: Veri kalıcılığı seçenekleri
  • Replication: Master-slave yapılandırma
  • Pub/Sub: Mesajlaşma sistemi
  • Lua scripting: Server-side script desteği

Kurulum

# Ubuntu/Debian
sudo apt update
sudo apt install redis-server

# CentOS/RHEL
sudo dnf install redis

# Başlat
sudo systemctl enable redis-server
sudo systemctl start redis-server

# Test
redis-cli ping
# PONG

Temel Yapılandırma

/etc/redis/redis.conf dosyasını düzenleyin:

# Bind address
bind 127.0.0.1 192.168.1.10

# Port
port 6379

# Şifre
requirepass guclu_redis_sifresi

# Max memory
maxmemory 2gb
maxmemory-policy allkeys-lru

# Persistence
appendonly yes
appendfsync everysec

# Logging
loglevel notice
logfile /var/log/redis/redis-server.log
Cache Architecture

Veri Tipleri ve Komutlar

String

SET user:1:name "Ahmet"
GET user:1:name

# Expire ile
SET session:abc123 "user_data" EX 3600

# Sayaç
INCR page:views
INCRBY page:views 10

Hash

HSET user:1 name "Ahmet" email "[email protected]" age 30
HGET user:1 name
HGETALL user:1
HINCRBY user:1 age 1

List

LPUSH queue:tasks "task1" "task2"
RPOP queue:tasks
LRANGE queue:tasks 0 -1
LLEN queue:tasks

Set

SADD tags:post1 "redis" "cache" "database"
SMEMBERS tags:post1
SISMEMBER tags:post1 "redis"
SINTER tags:post1 tags:post2

Sorted Set

ZADD leaderboard 100 "player1" 200 "player2" 150 "player3"
ZRANGE leaderboard 0 -1 WITHSCORES
ZREVRANGE leaderboard 0 2
ZINCRBY leaderboard 50 "player1"

Cache Stratejileri

Cache-Aside (Lazy Loading)

// Pseudocode
function getData(key) {
    data = redis.get(key)
    if (data == null) {
        data = database.query(key)
        redis.set(key, data, ttl=3600)
    }
    return data
}

Write-Through

// Pseudocode
function updateData(key, value) {
    database.update(key, value)
    redis.set(key, value)
}
Cache Strategy

Persistence

RDB (Snapshots)

# redis.conf
save 900 1      # 900 saniyede 1 değişiklik
save 300 10     # 300 saniyede 10 değişiklik
save 60 10000   # 60 saniyede 10000 değişiklik

dbfilename dump.rdb
dir /var/lib/redis

AOF (Append Only File)

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec    # Her saniye fsync

Replication

# Slave sunucuda
replicaof 192.168.1.10 6379
masterauth guclu_redis_sifresi

# Durumu kontrol
INFO replication

Redis Sentinel (HA)

# /etc/redis/sentinel.conf
sentinel monitor mymaster 192.168.1.10 6379 2
sentinel auth-pass mymaster guclu_redis_sifresi
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

# Sentinel başlat
redis-sentinel /etc/redis/sentinel.conf

PHP ile Kullanım

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('guclu_redis_sifresi');

// String
$redis->set('key', 'value');
$value = $redis->get('key');

// Hash
$redis->hSet('user:1', 'name', 'Ahmet');
$redis->hSet('user:1', 'email', '[email protected]');
$user = $redis->hGetAll('user:1');

// Cache with TTL
$redis->setex('cache:data', 3600, json_encode($data));
?>

Sonuç

Redis, yüksek performanslı uygulamalar için vazgeçilmez bir araçtır. Doğru cache stratejisi ve yapılandırma ile uygulama performansını dramatik şekilde artırabilirsiniz.

İlgili Yazılar