php cache zend framework - PullRequest
       5

php cache zend framework

1 голос
/ 24 мая 2010

на стороне сервера - PHP + Zend Framework.

проблема:

У меня огромное количество записей appox 5000, и ни одного из столбцов нет 5 в файле input.txt.Мне нравится читать все данные в память только один раз и отправлять некоторые данные на каждый запрос браузера.но если я обновлю этот файл input.txt, то обновленные данные должны быть автоматически синхронизированы с этой ячейкой памяти.

, поэтому мне нужно решить эту проблему, используя технику кеширования памяти..txt обновляется до истечения срока действия кэша, тогда мне нужно автоматически синхронизироваться с этой ячейкой памяти.

Теперь я использую Zend Framework 1.10. Это возможно в Zend Framework.Кто-нибудь может дать мне какую-нибудь строку кода zendfrmawork

У меня нет возможности использовать сервер memchached (распределенный).

Только Zend Framwork.

Ответы [ 3 ]

1 голос
/ 12 ноября 2010

Используйте ленивую загрузку следующим образом (обычно кеш 1 ч).

function getData() {
    $cache = ...; //get your memory cache here
    $cacheId = 'MyCacheId'; //cache id for your data
    $loadTimeCacheId = 'dataLoadCacheId'; //cache id for data load timestamp
    $cacheLength = 3600; //seconds

    $data = $cache->load($cacheId);
    $loadTime = (int) $cache->load($loadTimeCacheId);

    if (!$data || filemtime('/path/to/your/file') > $loadTime) {
        $data = ...; //real loading here

        $cache->save($data, $cacheId, array(/*no tags*/), $cacheLength); //save data to cache
        $cache->save(time(), $loadTimeCacheId, array(/*no tags*/), $cacheLength); //save load timestamp
    }

    return $data;
}
1 голос
/ 24 мая 2010

Можно кэшировать что-то подобное, используя Zend Framework.Проверьте документацию Zend онлайн - она ​​не завершена, но может дать вам старт: http://framework.zend.com/manual/en/zend.cache.introduction.html

0 голосов
/ 13 ноября 2010

Лучший вариант - использовать Zend_Cache_Frontend_File, указывающий на ваш файл, и Zend_Cache_Backend_Memcached. Практически нет другого способа сохранить что-либо в памяти, кроме Memcache или APC. Это не может быть сделано без внешнего расширения IMO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...