Redis Kurulumu ve Temel Yapılandırma: Linux’ta Net Rehber
Redis’i Linux VDS/VPS üzerinde kurup güvenli şekilde çalıştırın: kurulum, config ayarları, parola/ACL, test ve günlük doğrulama adımları.
Redis, uygulamaların oturum (session), önbellek (cache) ve kuyruk (queue) gibi veri işlerini düşük gecikmeyle yürütmesini sağlayan bir in-memory veri tabanıdır. Yanlış yapılandırma hem performansı düşürür hem de güvenlik açığı doğurabilir. Bu rehberde, Linux tabanlı bir VDS/VPS üzerinde Redis’i kurup temel yapılandırmayı; bağlama (bind), port kontrolü, parola/kimlik doğrulama, persistence (kalıcılık), loglama ve pratik doğrulama testleriyle netleştireceksiniz.
Redis kurulum öncesi kontrol listesi (VDS/VPS)
Kuruluma geçmeden önce aşağıdaki üç noktayı netleştirin:
- İşletim sistemi: Ubuntu/Debian mı, CentOS/RHEL/Alma mı? Paket adı ve servis komutları değişir.
- Ağ erişimi: Redis’i sadece yerel ağdan mı kullanacaksınız, yoksa uygulamanız farklı sunucuda mı? Varsayılan olarak dışarı açık bırakılmaz.
- Kalıcı veri ihtiyacı: Redis’i sadece önbellek için mi kullanacaksınız, yoksa veri kaybı olmasın mı? Bu karar persistence ayarlarını belirler.
Sistem kaynakları için net beklenti
Redis’i küçük kurulumlarda bile hızlı çalıştıran şey CPU değil, çoğunlukla RAM’dir. Önbellek boyutu arttıkça bellek tüketimi artar. Örneğin 4 GB RAM’li bir VPS’te bile makul bir önbellekle çalışılabilir; ancak ölçüm yapmadan “sınırsız” RAM varsayımı doğru değildir.
Linux’ta Redis kurulumu (Debian/Ubuntu ve RHEL)
Debian/Ubuntu
sudo apt update
sudo apt install -y redis-server
Servisi kontrol edin:
sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
RHEL/CentOS/AlmaLinux
Eğer dağıtımın reposunda Redis paketi varsa doğrudan kurabilirsiniz. En sık kullanılan yöntem:
sudo dnf install -y redis
sudo systemctl enable --now redis
sudo systemctl status redis --no-pager
Not: Bazı dağımlarda Redis sürümü repo üzerinden daha eski olabilir. Ancak temel yapılandırma mantığı aynı kalır. Versiyon farkına göre config dosyası yolları değişebilir.
Temel yapılandırma: bind, protected mode, kimlik doğrulama
Redis konfigürasyon dosyasını açın. Debian/Ubuntu tarafında tipik yol /etc/redis/redis.conf olur.
1) Dış erişimi kapatın: bind ile
Eğer Redis sadece aynı sunucudaki uygulamalar tarafından kullanılacaksa, en doğru kurulum loopback üzerinden erişimi kısıtlamaktır.
Örnek (sadece yerel):
- bind 127.0.0.1 ::1
Eğer uygulamanız başka makinede ise, kesin olarak hangi IP aralıklarından erişeceğinizi belirleyin. Tüm dünyaya açmak güvenlik riskini büyütür.
2) protected-mode ile ağ güvenliğini artırın
protected-mode yes olacak şekilde bırakın. Bu ayar, Redis’in yanlışlıkla dışarı açık ve kimlik doğrulamasız erişim aldığında kendini korumasını sağlar.
3) Kimlik doğrulama: şifre/ACL zorunlu
Redis’in modern sürümlerinde kullanıcı/rol bazlı ACL (Access Control List) yaklaşımı vardır. En azından, doğrudan “parola ile erişim” sağlayın.
Config üzerinde iki pratik yaklaşım bulunur:
- Eğer ACL destekliyorsa: kullanıcıyı ayarlayıp uygulama için ayrı bir kullanıcı kullanın.
- Basit parola yaklaşımı:
requirepassbenzeri ayarla erişimi parolaya bağlayın.
Örnek (parola gerekiyorsa):
- requirepass "GUCELLIKTEKI_GUVENLI_PAROLA"
Parolanın iki özelliği olmalı:
- En az 20+ karakter, tahmin edilemeyen yapı
- Uygulamada tek bir yerde yönetilen değişken (ör. .env) olarak saklanması
Güvenlik kuralı: Redis’i şifresiz ve internet açık erişimle çalıştırmayın. Portu açık görüyorsanız bu riskin büyüdüğü anlamına gelir.
4) Konfigürasyon dosyasında hızlı doğrulama
Ayarları güncelledikten sonra Redis’i yeniden başlatın:
sudo systemctl restart redis-server
Ardından Redis’in gerçek dinleme durumunu kontrol edin:
sudo ss -lntp | grep 6379
Burada Redis’in sadece 127.0.0.1’e bağlı olduğunu görmek istersiniz (yalnızca yerel kurulum).
Persistence (kalıcılık) ayarları: Önce karar, sonra config
Redis’i iki ana kullanım senaryosuna göre düşünün:
Senaryo A: Sadece önbellek (cache)
Uygulama yeniden ayağa kalktığında cache tekrar dolar. Bu senaryoda kalıcılık şart değildir. Bu sayede disk yazma yükü azalır.
Senaryo B: Kritik veri (ör. kuyruk/oturum)
Restart sonrası veri kaybı kabul edilemiyorsa persistence açılır.
En temel seçenekler
Redis config’te şu seçenekler belirleyicidir:
appendonly yes(AOF ile kalıcılık)savesatırları (RDB snapshot)
Pratik bir yaklaşım:
- Kritik olmayan önbellek: save kapatılabilir, AOF kapalı tutulabilir.
- Kritik veri: AOF açık tutulur; ayrıca snapshot aralıkları ölçüme göre ayarlanır.
Net tavsiye: “Hemen her şeyi AOF ile yazalım” yaklaşımı disk IO’yu artırır. Kullanım senaryonuza göre seçin.
Performans ve bellek sınırı: maxmemory ile kontrol
Redis’te bellek büyürse performans dalgalanabilir ya da OOM benzeri durumlar yaşanabilir. Bu yüzden maxmemory ve eviction policy belirlemek nettir.
Config içinde:
- maxmemory <MB>
- maxmemory-policy allkeys-lru (veya benzeri)
Örnek:
- maxmemory 512mb
- maxmemory-policy allkeys-lru
Bu ayarlar, bellek sınırı dolduğunda hangi anahtarların atılacağını söyler. lru (Least Recently Used) önbellek mantığıyla genellikle uyumludur.
Loglama ve servis izleme
Log dosyası ve günlük hata takibi kurulumun parçası olmalı.
Sistem servis logları
sudo journalctl -u redis-server -n 200 --no-pager
Redis CLI ile temel test
Redis CLI (genellikle redis-cli) ile durum doğrulayın.
Yerel ping testi:
redis-cli -h 127.0.0.1 -p 6379 ping
Şifre gerekiyorsa:
redis-cli -h 127.0.0.1 -p 6379 -a "GUCELLIKTEKI_GUVENLI_PAROLA" ping
Auth ve yetki kontrolü testi (net yöntem)
- Yanlış parola ile
pingdenediğinizde hata görmelisiniz. - Doğru parola ile
pingbaşarılı olmalı.
Örnek davranış:
- Hatalı auth: NOAUTH Authentication required
- Doğru auth: PONG
Üretim güvenliği: firewall, port kontrolü ve erişim modeli
Redis 6379 portunu yalnızca ihtiyacınız olan yerden açın.
Uygulama aynı sunucudaysa
- Firewall’da 6379’u sadece loopback üzerinden tutun.
- Dışarıdan erişim açmayın.
Uygulama farklı sunucudaysa
- Yalnızca uygulama sunucusunun IP’sinden 6379 erişimine izin verin.
- Geniş IP aralıkları yerine net IP aralığı hedefleyin.
Hızlı doğrulama komutu
Uzak erişim yanlışlıkla açılmış mı kontrol edin:
nc -vz <redis-ip> 6379
Bu test, Redis portunun ağdan görülebilirliğini somutlaştırır.
Sık yapılan kurulum hataları (net çözümler)
- Redis’i 0.0.0.0’a bağlamak: Dış dünyaya gereksiz açılır.
bindile kısıtlayın. - Şifresiz Redis: Kimlik doğrulama yoksa tarama botları tarafından bulunur.
requirepassveya ACL zorunlu yapın. - Kalıcılığı rastgele açmak: Disk IO artar, performans düşebilir. Önce kullanım senaryosunu seçin.
- maxmemory ayarlamamak: RAM dolunca servis etkilenebilir.
maxmemoryve eviction policy belirleyin.
Minimal “doğru başlangıç” konfigürasyon örneği
Aşağıdaki örnek, sadece yerel uygulamalar için temel güvenlik sağlar. Kendi config yolunuza göre uyarlayın.
bind 127.0.0.1 ::1protected-mode yesrequirepass "GUCELLIKTEKI_GUVENLI_PAROLA"maxmemory 512mbmaxmemory-policy allkeys-lru
Config güncellemesi sonrası:
- Redis’i restart edin
- redis-cli ping ile doğrulayın
- Uzak port erişimini kontrol edin
Kurulumdan sonra “ne kadar hazır?” kontrol listesi
Şu testler net bir kontrol sağlar:
- Servis ayağa kalkıyor mu?
-
systemctl status“active (running)” göstermeli. - Redis doğru IP’ye bağlı mı?
-
ss -lntpçıktısında 6379 sadece istediğiniz adrese bağlı olmalı. - Kimlik doğrulama çalışıyor mu?
- Yanlış parola hata vermeli, doğru parola
PONGdöndürmeli. - Kalıcılık beklendiği gibi mi? - Restart sonrası kritik senaryoda veri kalıyor mu, önbellekte beklenen şekilde siliniyor mu?
- Bellek sınırı çalışıyor mu? - Uygulamanın test yükü altında Redis bellek tüketimi kontrolünüzde kalıyor mu?
Sonuç: Hızlı aksiyon planı
Redis kurulumu ve temel yapılandırmada en hızlı “doğru karar” sırası şudur: (1) Redis’i yalnızca gerekli ağdan erişilebilir yapın, (2) parola/ACL ile kimlik doğrulamayı aktif edin, (3) kullanım senaryonuza göre persistence kararını verin, (4) maxmemory ile bellek kontrolü uygulayın. Bu adımları tamamladıktan sonra servis loglarını ve redis-cli ping/auth testlerini kullanarak kurulumun hazır olduğunu doğrulayın. Uygulamanızın Redis’i nasıl kullandığını (cache mi, queue mu) netleştirip konfigürasyonu buna göre revize ederek performans dalgalanmalarını önleyin.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Veri merkezleri arası latency ölçümü: Net yöntemler ve kontrol listesi
Veri merkezleri arasında gecikmeyi doğru ölçün. Ping, traceroute, TCP test, uygulama ölçümü ve sonuç yorumuyla net karar adımları.
Ubuntu, Debian, AlmaLinux, Rocky: Sunucu için Linux seçimi
Ubuntu, Debian, AlmaLinux ve Rocky’i sunucu kullanımı için net karşılaştırın: paket güncellemeleri, LTS/uyumluluk, güvenlik ve pratik seçim kriterleri.
SSH key ile giriş: Şifre tabanlı erişimi devre dışı bırakma
SSH key ile güvenli giriş kurun. Şifre tabanlı erişimi devre dışı bırakmak için net adımlar, test noktaları ve geri dönüş planı.
Online Dergi/Haber Sitesi İçin Hosting Seçimi: Net Kılavuz
Online dergi/haber sitesi için doğru hostingi seçin: trafik dalgaları, cache, WAF, yedekleme, veri tabanı ve lokasyon kriterleriyle net plan.