Arkadaşın dedigi yontem anladigim kadariyla bu


<?php

$cache = new Memcache();

function makale($id = null) 
{
    global $cache;

    $cacheKey = (null !== $id) ? "makale_id_" . $id : "makaleler_hepsi";

    if ($data = $cache->get($cacheKey)) {
        return $data;
    }

    $result = array();
    $strQ = "SELECT * FROM makaleler WHERE status='1' %s";
    $query = mysql_query(sprintf($strQ, ((null !== $id) ? "AND id = " . mysql_real_escape_string($id) : ""))); 

    while($data = mysql_fetch_assoc($query)) 
    { 
       $result[] = $data;
    }  

    if (null !== $id && count($resultSet) == 1) {
        $cache->set($cacheKey, $result); // zaman ve sıkıştırma aktif eklenebilir
        return current($result)
    } else if (null === $id && count($result) >= 1) {
        $cache->set($cacheKey, $result); // zaman ve sıkıştırma aktif eklenebilir
        return $result;
    }
    return false;
}
siz bütün makaleleri cekmişsiniz bende ona göre ayarladim tekrar, ilk basta id'ye gore cache koymustum,

kullanimi

$makaleler = makale();
tüm makaleleri verir, eğer makale yoksa false doner ve cacheler tekrar istendiğinde cache'den verir

$makale = makale(1);
1 nolu makaleyi verir ve cacheler tekrar istendiğinde cachenden alir, eğer makale yoksa false doner

hızlıca yazmaya calistim. umarım faydali olur.