15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
31.10.2024
1 +1

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 -y

CentOS/RHEL sistemleri için:

sudo yum update -y

Sunucunuzu 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 -y

CentOS / 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 --version

Beklenen çı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 redis

CentOS / RHEL’de

sudo systemctl start redis
sudo systemctl enable redis

Redis’in Çalışıp Çalışmadığını Doğrulayın

sudo systemctl status redis

Beklenen çı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.conf

Aş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_here

Uzun, 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 6380

Portu 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 redis

Adı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-cli

Parola ayarladıysanız, önce kimlik doğrulaması yapın:

AUTH your_strong_password_here

Ping Testi Çalıştırın

ping

Beklenen yanıt:

PONG

Anahtar-Değer Çiftini Ayarlayın ve Alın

SET mykey "Hello, Redis!"
GET mykey

Beklenen 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

exit

Adı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 yes

Dosyayı kaydettikten sonra Redis’i yeniden başlatın:

sudo systemctl restart redis

Hizmetin arka planda çalışıp çalışmadığını doğrulayın:

sudo systemctl status redis

Ayrıca Redis işleminin etkin olup olmadığını şu şekilde doğrulayabilirsiniz:

ps aux | grep redis

Adı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 10000

RDB 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 yes

Ayrıca AOF senkronizasyon ilkesini yapılandırabilirsiniz:

# Options: always, everysec, no
appendfsync everysec
  • always — 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.1 bağ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 6379

CentOS/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 --reload

4. 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 -y

Adı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 redis
import 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');
?>

Node.js — ###PPT_NOTR_69_

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın