Yükleniyor ...

Üye giriş

E-posta adresiniz
Şifreniz
Şifremi unuttum

Üye Kayıt

Kullanıcı adı
E-posta adresiniz
Şifreniz
Şifre tekrar
Giriş yap

Codeigniter Cache kullanımı

Cache işlemi nedir?

Bir verinin önbelleğe alınarak belli bir süre veya belli bir koşul sağlanana kadar önbellekden okunması işlemidir. Bu işlem sitenin performansını büyük ölçüde arttırıyor.

Kullanımı

Codeigniter framework ile kolay bir şekilde verilerimizi önbelleğe alabiliriz. Bu işlem için 3 farklı teknik bulunuyor. 

- Çıktı cache yöntemi

Değer saklama yöntemi

- Veritabanı cache yöntemi

Şimdi bu yöntemlerin kullanımına geçelim laughing.

 

Output(Çıktı) Cache yöntemi

Bu yöntem ile sayfalarınızı direk olarak önbelleğe alabilirsiniz. Kullanımı çok kolaydır. Controller içerisine deneme amaçlı bir metod yazalım.

public function uyeler()
{
    $this->output->cache(10);  // 10 dakika boyunca sayfayı önbelleğe al ve önbelleği çalıştır
    echo "Burası üye sayfası";
}

Bu şekilde 10 dakika boyunca aynı sayfa 10 dakika boyunca önbellekten okunur süresini kendinize göre ayarlayabilirsiniz. Cache dosyalarını "Application/Cache" klasörü içersinde görebilirsiniz.

Eğer önbelleğe alınan veriyi silmek isterseniz "delete_cache" metodunu kullanabilirsiniz. Controller içerisine bir tane daha metod ekleyelim.

public function cache_sil()
{
     $this->output->delete_cache("welcome/uyeler");  // Cache dosyasını silmek için controller_ismi/metod ismini yazıyoruz 
}

 

Değeri önbelleğe alma yöntemi

Bu yöntem ile istediğiniz değerleri önbelleğe alabilirsiniz ve istediğiniz süre kadar önbellekte tutabilirsiniz. Bu driverı diğer çoğu cache yöntemiyle kullanabilirsiniz (Memcached,Redis vs. gibi). Ama biz bu dersimizde dosya yöntemiyle kullanacağız zaten diğer yöntemler ile kullanım hemen hemen aynı sadece bazı ayarlamalar yapılmalı o kadar laughing.

Şimdi controller içerisinde bir tane method oluşturalım.

public function test()
	{
		$this->load->driver('cache', array('adapter' => 'file', 'backup' => 'file')); // Driverı sayfamıza yüklüyoruz

		if ( ! $dizi = $this->cache->get(md5('degerler'))) // Eğer değerlerimiz önbelleğe alınmamışsa
		{
			$dizi = array("Php","Asp.net","Css","jQuery","Javascript","C#"); // Değişken oluşturup içerisine dizi depolayalım (Bu yöntemi kullanarak Önbelleğe veri alırken dizi şeklinde almak zorunlu değildir)
			$this->cache->save(md5('degerler'), $dizi, 300);  //  Bu metod ile önbelleğe kayıt işlemi yapıyoruz. 1.parametresi isimi (md5 kullanmak zorunlu değildir! ama karışık ismi olsun  isterseniz kullanabilirsiniz), 2.parametresi depolanacak veri, 3.parametresi ise ne kadar süre önbellekte tutulacağı (Saniye türünden yazıyoruz örnekte 5 dakika olarak belirledik)
		}

		echo "<pre>";
			print_r($dizi);   // Dizi değişkenini yazdır
		echo "</pre>";
	}

Eğer önbelleğe aldığımız bu değeri silmek istersek delete metodunu kullanıyoruz.

$this->cache->delete(md5("degerler")); // Önbelleğe verdiğimiz ismi yazıyoruz

Bu yöntem hakkında daha fazla bilgi için buraya tıklayın.

Veritabanı Cache yöntemi

Sayfa çalıştığında eğer sorguyu önbelleğe aldıysanız veritabanı çalıştırmak yerine önbellekten okuyacaktır. Bu yöntem ile sadece select sorgularınızı önbelleğe alabilirsiniz. Önbelleğe alınacak dosyanın ismi controller ismi/method ismi şeklinde adlandırılır.

İlk olarak önbellek dosyalarımızın nerede saklanacağını belirmemiz lazım. "Application/config/" klasörleri içerisindeki "database.php" dosyasını açıyoruz. Ve cachedir değerine önbelleğe alınan verilerin nerede oluşacağını belirtiyoruz. Biz örneğimize "application/cache/" klasörünün içerisine "database" adlı bir klasör açarak devam ediyoruz laughing

'cachedir' => 'application/cache/database', // Siz isterseniz farklı bir klasörde belirtebilirsiniz

 Kullanımı oldukça basit bu yöntem ile veri önbelleğe alınır ve biz silene kadar kalır. Şimdi controller içerisine bir tane method oluşturalım ve kodlarımızı yazalım smile.

public function deneme()
{
		$this->db->cache_on();  // önbelleğe alma işlemini başlat
		$veriler = $this->db->get("veriler")->result(); // Veriler tablosundaki kayıtları getir
		$this->db->cache_off();	 // önbelleğe alma işlemini bitir. Başlat ve bitir arasındaki bütün select sorguları önbelleğe alınır
		echo "<pre>";
			print_r ($veriler);  // veriler dizisini göster
		echo "</pre>";
}

Bu yöntem ile önbelleğe alma işlemi bu kadar basit şimdi önbelleğe aldığımız veriyi silmeyi görelim.

$this->db->cache_delete('welcome', 'deneme'); // 1.parametreye controller ismi 2.parametreye method ismi gelecek

Eğer bu yöntem ile oluşturduğumuz bütün önbellekteki verileri silmek istersek.

$this->db->cache_delete_all();

Bu şekilde kullanıyoruz.

 

Kolay gelsin smile

Yorumlar(0)

Yorum yapmak için lütfen giriş yapın veya üye olun