Symfony ile Redis kullanarak önbellek oluşturmak

Pamir Işık
2 min readJan 4, 2023

--

Merhaba bu yazımda Symfony ile Redis kullanarak bir önbellek oluşturmak için izlenecek adımları anlatmaya çalışacağım.

Symfony ile Redis önbelleğini kullanarak uygulamanızın performansını artırabilirsiniz. Önbellekte saklanan veriler sayesinde, veritabanından veya diğer yavaş servislerden veri okuma işlemlerini azaltabilir ve bu sayede uygulamanızın performansını artırabilirsiniz.

Önbellekte saklanan verileri sürekli olarak güncel tutmak için birkaç yöntem kullanabilirsiniz. Örneğin, veritabanındaki veriler değiştiğinde önbellekte saklanan verileri de güncelleyebilirsiniz. Bu işlemi yapmak için, veritabanındaki veriler değiştiğinde önbellekte saklanan verileri silip, tekrar önbellekte saklayabilirsiniz.

Ayrıca, önbellekte saklanan verilerin süresini sıklıkla kontrol ederek, süresi dolmuş verileri silip, tekrar önbellekte saklayabilirsiniz. Bu sayede önbellekte saklanan veriler her zaman güncel olur.

Symfony ile Redis önbelleğini kullanarak uygulamanızın performansını artırmak için bu yöntemleri kullanabilirsiniz.

Symfony ile Redis kullanarak bir önbellek oluşturmak için aşağıdaki adımları takip etmelisiniz:

  1. Redis sunucusunu yükleyin ve başlatın. (Bu adımı internetten araştırarak bulabilirsiniz yakında bununla ilgili de bir makale paylaşıcam)
  2. Symfony projenizde predis/predis paketini composer kullanarak yükleyin.
composer require predis/predis

3. Symfony projenizin config/packages/framework.yaml dosyasını açın ve cache bölümüne aşağıdaki ayarları ekleyin:

framework:
cache:
app: cache.adapter.redis

4. config/packages/cache.yaml dosyasını oluşturun ve aşağıdaki ayarları ekleyin:

cache:
pools:
redis_cache_pool:
adapter: cache.app.redis
default_lifetime: 3600
app:
redis:
client: predis
alias: default
options:
connection_parameters:
- schema: tcp
host: localhost
port: 6379
password: ~
database: 0

Bu ayarlar, Symfony projenizde Redis önbelleğini kullanmanızı sağlar. Önbellekte saklanacak verileri $cache->set() metodu ile ekleyebilir ve $cache->get() metodu ile önbellekten verileri alabilirsiniz.

Örneğin:

$cache = $this->get('cache.app');

// Veriyi önbelleğe ekle
$cache->set('key', 'value', 3600); // 3600 saniye süre ile önbellekte tut

// Önbellekten veriyi al
$value = $cache->get('key');

Önemli noktalardan bir tanesi de, önbellekte saklanacak verinin serileştirilebilir olması gerektiğidir. Önbellekte saklanacak nesneler için serialize() ve unserialize() fonksiyonlarını kullanabilirsiniz.

$object = new \stdClass();
$object->property = 'value';

// Önbellekte saklanacak veri olarak serileştir
$serialized = serialize($object);

// Önbellekte saklanan veriyi tekrar nesne haline getir
$unserialized = unserialize($serialized);

Symfony ile Redis önbelleğini kullanarak verileri hızlı bir şekilde saklayabilir ve okuyabilirsiniz. Önbellekte saklanan verilerin süresini de default_lifetime ayarı ile belirleyebilirsiniz. Bu ayar, önbellekte saklanacak verilerin süresini saniye cinsinden belirtir. Eğer bu ayarı sıfır olarak belirlersek, veriler önbellekte sonsuza kadar saklanır.

Eğer Redis önbelleği kullanırken bir hata oluşursa, Symfony otomatik olarak bir hata raporu oluşturur ve bunu logs dizinine kaydeder. Hata raporlarını inceleyerek sorunun nereden kaynaklandığını tespit edebilirsiniz.

Redis önbelleği kullanırken dikkat etmeniz gereken bir diğer nokta ise, önbellekte saklanan verilerin güvenliğidir. Önbellekte saklanan verilerin güvenliğini sağlamak için password ayarını kullanabilirsiniz. Bu ayar ile Redis sunucusuna bağlanırken bir parola girdiğinizde, verilerin güvenliği daha da artar.

Umarım bu bilgiler yardımcı olmuştur. Eğer daha detaylı bilgiye ihtiyacınız olursa, Symfony ve Redis belgelerini inceleyebilirsiniz.

--

--