Skip to content

May 1, 2012

1

Alternative PHP Cache (APC) Key-Value Storage Özelliği

php-apc

Merhaba arkadaşlar, bu yazımızda Alternative PHP Cache (APC) ‘in key-value memory storage (bellekte değişken depolama) özelliğini inceleyeceğiz.

Alternative PHP Cache (APC) hakkında kuruluım ve kullanım bilgilerini içeren Alternative PHP Cache (APC) Kurulum ve Kullanımı başlıklı yazıyı yazıya başlamadan önce okumak isteyebilirsiniz.

APC Key-Value Memory Storage Özelliği

APC ‘nin bir başka özelliğide değişken önbellekleme yapan memory storage ‘dir. Bu özellik sayesinde belleğe attığınız bir değişkeni daha sonra (örneğin başka bir dosyadan) çağırabilirsiniz. Kullanılması son derece basit bir özelliktir. Ancak bu değişkenlere sadece aynı sunucudan erişilebilir (Memcache ve Redis gibi uygulamalarda olduğu gibi başka sunuculardan erişilemez yada dağıtık yapı kurulamaz).

APC Key-Value Memory Storage Avantajları

APC Key-Value Memory Storage özelliğinin en büyük artısı kullanımının son derece basit oluşudur. Normal bir fonksiyon kullanır gibi (herhangi bir sunucuya vs. bağlanmadan) değişkenleri depolayabilir yada okuyabilirsiniz.

APC Key-Value Memory Storage Dezavantajları

APC Key-Value Memory Storage özelliğinin aklımıza gelen dezavantajı sadece aynı sunucudan erişilebilmesidir. Yani APC cache server olarak kullanılamaz.

APC Key-Value Memory Storage Kullanımı

APC değişken önbellekleme için en sık kullanılan 4 fonksiyon aşağıdaki gibidir;

  • apc_store – bir değişkeni belleğe ekler
  • apc_add – bir değişkeni belleğe (aynı isimle) sadece bir defa ekler
  • apc_fetch – bellekte bulunan bir değişkeni getirir
  • apc_delete – bellekte bulunan değişkeni siler

APC Belleğe Değişken Ekleme (apc_store):

<?php
header('Content-Type: text/html; charset=utf-8');

// Örnek değişken
$page_title = "Hoşgeldiniz!";

// Değişkeni APC 'ye page_title adıyla ekle
apc_store("page_title", $page_title);
?>

APC Bellekten Değişken Okuma (apc_fetch):

<?php
header('Content-Type: text/html; charset=utf-8');

// APC 'den page_title adlı değişkeni al
echo apc_fetch("page_title") . "<br/>\n";
?>

Çıktısı :

Hoşgeldiniz!

APC Belleğe apc_add Kullanarak Değişken Ekle:

<?php
header('Content-Type: text/html; charset=utf-8');

// Belleğe eklenmesini istediğimiz ve
// güncellenmesini istemediğimiz değişken
$app_version = "1.0";

// Değişkeni APC 'ye app_version adıyla ekle
if( apc_add("app_version", $app_version) ){
  echo "app_version eklendi!<br/>\n";
}

// Bellekte bulunan app_version değişkenini güncellemeye çalış
if( apc_add("app_version", "1.1") ){
  echo "app_version güncellendi<br/>\n";
}

// app_version değişkenini oku
echo  "app_version değeri : " . apc_fetch("app_version") . "<br/>\n";
?>

İlk Çalıştırıldığında Çıktısı:

app_version eklendi!
app_version değeri : 1.0

İkinci Çalıştığında Çıktısı:

app_version değeri : 1.0

Çıktılardan da anlaşılacağı üzere apc_add ile eklediğimiz değeri hiçbir şekilde güncelleyemiyoruz. Bu PHP ‘nin sabit tanımlama (constant) özelliğine benzer yapıda çalışır.

APC Bellekten Değişken Silme (apc_delete):

<?php
header('Content-Type: text/html; charset=utf-8');

// Değişkeni APC 'den kaldir
if( apc_delete("page_title") ){
  echo "page_title silindi!<br/>\n";
}

// page_title 'i okumaya calis
echo  "page_title değeri : " . apc_fetch("page_title") . "<br/>\n";
?>

Çıktısı:

page_title silindi!
page_title değeri :

Sonuç

Eğer başka sunuculardan depoladığınız değişkenlere erişmek gerekmiyorsa APC key-value storage özelliğini gönül rahatlığıyla  kullanabilirsiniz.

APC aslen opcode caching yaptığı için yazı içerisinde “APC key-value storage özelliği” vurgusu yaptık.

Yazıda kullanılan kodların bulunduğu dosyaları apc-key-value-storage linkinden indirebilirsiniz.

Sizin fikriniz nedir? Lütfen aşağıdaki formu kullanarak yorum yapın.

(gerekli)
(gerekli)