Работа с memcache

Статус
В этой теме нельзя размещать новые ответы.

SimonSmith

Мастер
Регистрация
25 Сен 2008
Сообщения
148
Реакции
34
Добрый день,
решил использовать memcache. Прочитал статью на Для просмотра ссылки Войди или Зарегистрируйся, вроде все понятно, только немного не понятно как все работает.
Есть простой скрипт
PHP:
$memcache = new Memcached();
$memcache->addServer('localhost', 11211);
function loadС(){
    for($i=0;$i<=900000;$i++){
        $aResult[] = $i;
    }
}
 
if (!($bar = $memcache->get('array_bar'))){
    $bar = loadC();
    $memcache->set($bar, 'array_test', 60*10);
}
 
if (!($foo = $memcache->get('array_foo'))){
    $foo = loadC();
    $memcache->set($foo, 'array_test', 60*10);
}
 
var_dump($bar);
var_dump($foo);


при выполнении срипта таким образом страницы загружается за ~0.8 - 0.4 сек, если выводить на прямую функцию loadC() то страница загружается за ~1.5 - 0.8 сек...
Как бы это и есть работа мемкэша или я что-то не правильно делаю?

п.с. знаю что мемкеш используется для снижения нагрузки на базу данных но может и для этого примера должно работать?

пробовал сделать так:
PHP:
if (!($f = $memcache->get('array_sql'))){
    $sql = $db->query("SELECT `name_j` FROM `jurnals`");
    $aResult[] = array();
    while($aRows = $sql->fetch_array()){
        $aResult[] = $aRows['name_j'];
    }
    $f = array('data'=>$aResult);
    $memcache->set($f, 'array_sql', 60*10);
}

если не ошибаюсь после первого запроса к базе, 2ой запрос не должен исполнятся и я удаляю все что в ife , вывожу переменную var_dump($f) и результат bool(false)...
Почему? или не так? :ah:
 
в параметрах сначала ключ потом переменная
PHP:
$memcache->set('array_sql', $f, 60*10);
 
что-то тут не чисто...при вызове по ключу выдает false...

п.с. на windows'е установил мемкеш, все работает...на линуксе не хочет

п.с.с. переустановил все и заработало
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху