Tarih: 2009-09-15, 23:39:39 Mesaj konusu: 24 saatte bir güncelleme
Merhaba arkadaşlar aşağıdaki php kodları ile ben sayfa her yenilendiğinde sql den veriyi rastgele ekrana yazdırabiliyorum ancak benim istediğim SQl deki veriyi rastgele seçecek ve 24 saat geçmeden değiştirmeyecek yada 12 saat yada1200 saat :)
Kod Şu
Kod:
global $prefix, $dbi;
$result = sql_query("select title, tid from ${prefix}_encyclopedia_text1 order by RAND() LIMIT 0,6", $dbi);
while(list($title,$tid)=sql_fetch_row($result,$dbi)){
Bunun için random bir sayı üretmelisiniz ve bunu cache etmelisiniz. Tabi bu sayıyı php ile üreteceğiniz için böyle bir id var mı yok mu kontrolünü de yapmalısınız. Doğruluğundan emin olduktan sonra cache etmelisiniz. Ama madem cache edilecek, mantıklı olan sql sonucunu cache etmektir. Böylece hem site hızı artar, hem load azalır, hem de sql daha az meşgul edilmiş olur.
Buraya yazdığın kodlarla, aşağıdaki kodları değiştir.
Kod:
$ansk_cache_dosya='tampon/ansiklopedi_cache.ini';
e v a l(file_get_contents($ansk_cache_dosya));
if($cache_tarih != date('d-m-Y'))
{
$dizi[0]=array('Merhaba','Dünya');
$dizi[1]=array('Merhaba1','Dünya1');
$dizi[2]=array('Merhaba2','Dünya2');
$dizi[3]=array('Merhaba3','Dünya3');
$ansk_cache='$cache_tarih=\''.date('d-m-Y').'\';
$ansk_cache=array();'."\n";
global $prefix, $dbi;
$result = sql_query("select title, tid from ${prefix}_encyclopedia_text1 order by RAND() LIMIT 0,6", $dbi);
while(list($title,$tid)=sql_fetch_row($result,$dbi)){
$ansk_cache.='$ansk_cache[]=array(\''.$title.'\',\''.$tid.'\');'."\n";
}
file_put_contents($ansk_cache_dosya,$ansk_cache);
e v a l($ansk_cache);
}
foreach($ansk_cache as $seyranli) {
list($title,$tid)=$seyranli;
bu kodları yazdıktan sonra da, tampon diye bir klasör ve ansiklopedi_cache.ini diye de bir dosya oluştur ve buna chmod777 ver. Böylece günde yalnız bir kere sql sorgusu çalışacaktır, diğerkleri dosyadan okuyacaktır. Aynı yöntemi benzer sorgularda da kullanabilirsin.
Bu şekilde modüllerde kullanabiliriz sanırım peki bir şey sorucam cache kullanmak sunucuyu mysql den fazla kasmıyor sanırım çokmu karışık olur bu şekilde nuke yi optimize etsek
100% bu daha iyi diye kesin bir tabir yoktur tabi ama nerde kullanacağınızı bilirseniz cache her zman daha iyidir. Forum gibi hareketli yerlerde kullanılmaz ama sürekli yenilenmeyen yerlerde cache oldukça önemlidir. Dediğiniz gibi günde 1 kez değişecekse, her modülde uygulayabilrisiniz.
Daha önemlisi ise, site ayarlarını cache edebilirsiniz. her defasında nuke_config i okumaz, siz admin panelinde değişiklik yaptığınızda dosya içeriğini yenilersiniz gerisi aynı kalır. Aynı şeyi forum config için de yapabilrisiniz. Sommaire menü gibi bi kere değişiklik yapılan modüllerde de yapabilirsiniz. Hızınız hitnize de bağlı olarak çok yükselir. Kolay kolay siteniz tıkanmaz, 500 kişi girdi diye sapıtmaz.
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız