Linux’ta Redis Kurulumu ve Yapılandırması: Eksiksiz Adım Adım Rehber
Redis, güçlü, açık kaynaklı, bellek içi veri yapısı deposu olup veritabanı, önbellek ve mesaj aracısı olarak yaygın şekilde kullanılmaktadır. İstisnai performansı ve çok yönlülüğü ile tanınan Redis, uygulamaları sık istenen verileri önbelleğe alarak, oturumları yönetip ve gerçek zamanlı analitiği işleyerek dramatik şekilde hızlandırmak isteyen geliştiriciler için tercih edilen bir çözümdür. VPS Hosting planında yüksek trafikli bir web uygulaması çalıştırıyor olsanız ya da özel bir altyapıyı yönetiyor olsanız, bu kapsamlı rehber sizi Redis’i bir Linux sistemine yükleme, yapılandırma ve güvenliğini sağlama konusunda her adımda yönlendirir.
Redis Nedir ve Neden Kullanmalısınız?
Kurulum sürecine dalmadan önce, Redis’i bu kadar popüler yapan şeyleri anlamak değerlidir:
- Bellek içi depolama: Redis verileeri RAM’de depolar, okuma ve yazma işlemlerini son derece hızlı hale getirir — genellikle bir milisaniyenin altında tamamlanır.
- Çok yönlü veri yapıları: Dizeler, hash’ler, listeler, kümeler, sıralı kümeler, bitmap’ler ve daha fazlasını destekler.
- Kalıcılık seçenekleri: Bellek içi olmasına rağmen, Redis verileri yeniden başlatmalardan kurtulmak için diske kalıcı hale getirebilir.
- Pub/Sub mesajlaşması: Redis, hizmetler arasında gerçek zamanlı iletişim için yayınla/abone ol mesajlaşma desenlerini destekler.
- Geniş dil desteği: Python, PHP, Node.js, Java, Ruby, Go ve daha birçok dil için resmi istemci kütüphaneleri mevcuttur.
Redis, özellikle uygulama performansının kritik olduğu ortamlarda değerlidir — örneğin, arka ucunuz günde milyonlarca isteği sunan bir Dedicated Server‘da barındırıldığında.
Ön Koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- Ubuntu/Debian veya CentOS/RHEL çalıştıran bir Linux sunucusu
- Sunucuya root veya sudo erişimi
- Linux komut satırı hakkında temel bir anlayış
- Paketleri indirmek için aktif bir internet bağlantısı
Adım 1: Sisteminizi Güncelleyin
Her zaman sisteminizin paket dizinini güncelleyerek ve yüklü paketleri en son sürümlerine yükselterek başlayın. Bu, uyumluluğu ve güvenliği sağlar:
sudo apt update && sudo apt upgrade -yCentOS/RHEL sistemleri için:
sudo yum update -ySunucunuzu güncel tutmak, özellikle üretim ortamlarında temel bir güvenlik uygulamasıdır.
Adım 2: Redis’i Yükleyin
Çoğu büyük Linux dağıtımı, Redis’i resmi paket depolarına dahil eder, bu da kurulumu basit hale getirir.
Ubuntu / Debian’da
sudo apt install redis-server -yCentOS / RHEL’de
CentOS/RHEL sistemleri, ilk olarak EPEL (Enterprise Linux için Ek Paketler) deposunun etkinleştirilmesini gerektirir:
sudo yum install epel-release -y
sudo yum install redis -y> Not: CentOS/RHEL’in daha yeni sürümlerinde (8+), dnf yerine yum kullanabilirsiniz:
> “`bash
> sudo dnf install redis -y
> “`
Adım 3: Kurulumu Doğrulayın
Kurulum tamamlandıktan sonra, Redis’in sürümünü kontrol ederek doğru şekilde yüklendiğini doğrulayın:
redis-server --versionBeklenen çıktı (örnek):
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=...Bir sürüm numarası görürseniz, Redis sisteminize başarıyla yüklenmiştir.
Adım 4: Redis Hizmetini Başlatın ve Etkinleştirin
Kurulumdan sonra, Redis hizmetini başlatmanız ve sistem önyüklemesinde otomatik olarak başlaması için yapılandırmanız gerekir.
Ubuntu / Debian’da
sudo systemctl start redis
sudo systemctl enable redisCentOS / RHEL’de
sudo systemctl start redis
sudo systemctl enable redisRedis’in Çalışıp Çalışmadığını Doğrulayın
sudo systemctl status redisBeklenen çıktı:
● redis.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis.service; enabled)
Active: active (running) since ...Yeşil active (running) durumu, Redis’in doğru şekilde çalıştığını doğrular.
Adım 5: Redis’i Yapılandırın
Redis’in davranışı ana yapılandırma dosyası tarafından kontrol edilir:
- Ubuntu/Debian:
/etc/redis/redis.conf - CentOS/RHEL:
/etc/redis.conf
Yapılandırma dosyasını bir metin editörü ile açın:
sudo nano /etc/redis/redis.confAşağıda, gözden geçirmeniz ve ayarlamanız gereken en önemli yapılandırma seçenekleri yer almaktadır.
5.1 Parola Ayarlayın (Kimlik Doğrulama)
Varsayılan olarak, Redis kimlik doğrulama gerektirmez. Herhangi bir üretim ortamı için güçlü bir parola ayarlamak gereklidir:
# requirepass içeren satırı bulun ve güncelleyin:
requirepass your_strong_password_hereUzun, rastgele oluşturulmuş bir parola seçin. Redis son derece hızlı olduğundan, kaba kuvvet saldırıları hız sınırlaması olmadan saniyede yüz binlerce tahminde bulunabilir.
5.2 IP Adresini Bağlayın
Varsayılan olarak, Redis yalnızca 127.0.0.1 (localhost) bağlantısını yapar, bu da harici erişimi engeller. Bu en güvenli varsayılan ayardır.
Uygulamanızın başka bir sunucudan Redis’e bağlanması gerekiyorsa, ek bir IP adresine bağlayabilirsiniz:
bind 127.0.0.1 192.168.1.100> Güvenlik Uyarısı: Hiçbir zaman Redis’i halkla açık bir sunucuda uygun güvenlik duvarı kuralları olmadan 0.0.0.0 (tüm arabirimler) bağlantısına bağlamayın. Açık Redis örnekleri yaygın bir saldırı vektörüdür.
5.3 Varsayılan Portu Değiştirin
Redis varsayılan olarak 6379 portunu dinler. Bu portu değiştirmek gizlilik katmanı ekler:
port 6380Portu değiştirirseniz güvenlik duvarı kurallarınızı ve uygulama bağlantı dizelerinizi güncellemeyi unutmayın.
5.4 Yapılandırma Değişikliklerini Uygulayın
redis.conf dosyasını düzenledikten sonra, tüm değişiklikleri uygulamak için Redis hizmetini yeniden başlatın:
sudo systemctl restart redisAdım 6: Redis Kurulumunu Test Edin
Redis’in doğru şekilde çalışıp çalışmadığını doğrulamak için yerleşik Redis CLI (Komut Satırı Arabirimi) kullanın:
redis-cliParola ayarladıysanız, önce kimlik doğrulaması yapın:
AUTH your_strong_password_herePing Testi Çalıştırın
pingBeklenen yanıt:
PONGAnahtar-Değer Çiftini Ayarlayın ve Alın
SET mykey "Hello, Redis!"
GET mykeyBeklenen yanıt:
"Hello, Redis!"Redis depolanan değeri doğru şekilde döndürürse, kurulumunuz tamamen işlevseldir ve veritabanı verileri beklendiği gibi depolamakta ve almaktadır.
CLI’den Çıkın
exitAdım 7: Redis’i Arka Plan Daemon’u Olarak Yapılandırın (İsteğe Bağlı)
Redis’in ön plan işlemi yerine arka plan daemon işlemi olarak çalışmasını istiyorsanız, daemonize seçeneğini redis.conf dosyasında yapılandırın:
daemonize yesDosyayı kaydettikten sonra Redis’i yeniden başlatın:
sudo systemctl restart redisHizmetin arka planda çalışıp çalışmadığını doğrulayın:
sudo systemctl status redisAyrıca Redis işleminin etkin olup olmadığını şu şekilde doğrulayabilirsiniz:
ps aux | grep redisAdım 8: Redis Kalıcılığını Etkinleştirin (İsteğe Bağlı Ancak Önerilir)
Varsayılan olarak, Redis verileri yalnızca bellekte depolar, bu da sunucu yeniden başlatılırsa verilerin kaybolması anlamına gelir. Redis bunu ele almak için iki kalıcılık mekanizması sağlar:
Seçenek 1: RDB (Redis Veritabanı Yedeklemesi) — Anlık Görüntü Alma
RDB, belirtilen aralıklarda veri setinizin belirli bir zaman noktası anlık görüntülerini oluşturur. redis.conf dosyasında yapılandırın:
# Save a snapshot if at least 1 key changed in 900 seconds (15 minutes)
save 900 1
# Save a snapshot if at least 10 keys changed in 300 seconds (5 minutes)
save 300 10
# Save a snapshot if at least 10,000 keys changed in 60 seconds
save 60 10000RDB yedeklemeler ve olağanüstü durum kurtarması için etkilidir ancak anlık görüntüler arasında yazılan verileri kaybedebilir.
Seçenek 2: AOF (Append Only File) — Yazma Günlüğü
AOF, her yazma işlemini bir dosyaya kaydeder ve çok daha güçlü dayanıklılık garantileri sağlar:
appendonly yesAyrıca AOF senkronizasyon ilkesini yapılandırabilirsiniz:
# Options: always, everysec, no
appendfsync everysecalways— En güvenli, ancak en yavaş (her yazma sonrası senkronize)everysec— İyi performans ve güvenlik dengesi (her saniye senkronize)no— En hızlı, ancak işletim sistemi temizleme zamanlamasına bağlı
> En İyi Uygulama: Üretim ortamları için, maksimum veri dayanıklılığı için hem RDB hem de AOF’u birlikte kullanın.
Adım 9: Redis’i Güvenliğe Alın — En İyi Uygulamalar
Güvenlik, herhangi bir Redis dağıtımı için kritiktir. Redis örneğinizi sağlamlaştırmak için bu en iyi uygulamaları izleyin:
1. Parola Kimlik Doğrulamasını Etkinleştirin
Adım 5.1’de açıklandığı gibi, her zaman requirepass dosyasında güçlü bir redis.conf değeri ayarlayın.
2. Ağ Erişimini Kısıtlayın
- Redis’i
127.0.0.1bağlantısına bağlayın, uzak erişim açıkça gerekli olmadıkça. - Sunucular arası Redis iletişimi için özel bir ağ veya VPN kullanın.
3. Güvenlik Duvarı Kurallarını Yapılandırın
Redis trafiğine yalnızca güvenilir IP adreslerinden izin verin. Ubuntu’da ufw kullanarak:
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379CentOS/RHEL’de firewalld kullanarak:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload4. Tehlikeli Komutları Yeniden Adlandırın veya Devre Dışı Bırakın
Redis, istismar edilebilecek güçlü yönetim komutlarına (FLUSHALL, CONFIG, DEBUG gibi) sahiptir. redis.conf dosyasında bunları yeniden adlandırın veya devre dışı bırakın:
rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG_XYZ123"
rename-command DEBUG ""5. Redis’i Root Olmayan Kullanıcı Olarak Çalıştırın
Çoğu dağıtımdaki Redis paketi zaten özel bir redis sistem kullanıcısı oluşturur. Redis’in hiçbir zaman root olarak çalışmadığından emin olun.
6. Redis’i Güncel Tutun
Bilinen güvenlik açıklarını yamalamak için Redis’i düzenli olarak güncelleyin:
sudo apt update && sudo apt upgrade redis-server -yAdım 10: Redis’i Uygulamalarınızla Entegre Edin
Redis yüklü ve güvenli hale getirildikten sonra, bunu uygulama yığınınıza entegre edebilirsiniz. İşte popüler dil entegrasyonlarının hızlı bir özeti:
Python — redis-py
pip install redisimport redis
r = redis.Redis(host='127.0.0.1', port=6379, password='your_password', decode_responses=True)
r.set('greeting', 'Hello from Python!')
print(r.get('greeting'))PHP — phpredis Uzantısı
sudo apt install php-redis -y<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_password');
$redis->set('greeting', 'Hello from PHP!');
echo $redis->get('greeting');
?>