Кэширование данных начинающих в PHP - PullRequest
6 голосов
/ 17 февраля 2010

Я использую simpleXML для просмотра XML-результатов файла Twitter в формате XML, но я совершенно заблудился в отношении кэширования результатов с помощью PHP. Эта статья , кажется, немного помогает, но я также столкнулся с memcache (и memcached. Да ладно, namers.), И я не знаю, что делать.

Я использую это:

$sxml = simplexml_load_file(
    'http://api.twitter.com/1/qworky/lists/qworkyteam/statuses.xml');

foreach($sxml->status as $status){
    $name = $status->user->name;
    $image = $status->user->profile_image_url;
    $update = $status->text;
    $url = "http://twitter.com/" . $status->user->screen_name;
}

, чтобы просто сохранить данные XML из списка Twitter в пригодные для использования переменные. Но что правильно делать? Создайте файл кэша и запускайте этот блок PHP только в том случае, если файл кэша старше десяти минут, в противном случае обслуживайте кэшированные переменные? Как передать кэшированные переменные туда-обратно между кэшированным файлом и DOM? Черт, какое расширение и имя файла имеет файл кэша?

Большое спасибо за то, что вы можете указать мне правильное направление здесь.

Ответы [ 2 ]

10 голосов
/ 17 февраля 2010

Джошуа взгляните на эту статью о простом кэшировании PHP, вы можете сделать то, что вы описали, с относительной легкостью (да, возможно, это самый разумный путь).

5 голосов
/ 17 февраля 2010

Как общая концепция, кэширование не подразумевает стратегию реализации. Распространенной идеей является то, что вы храните информацию где-то, что обеспечивает вам более эффективный доступ, чем там, где вы получили данные изначально.

Таким образом, в этом случае более эффективно получать данные с диска, чем запрашивать Twitter (обычно сетевая задержка больше, чем задержка дискового ввода-вывода).

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

При этом вы можете хранить значения из Твиттера в памяти, если хотите, или в файле на диске, если вам нужно, чтобы значения сохранялись после, скажем, завершения работы. Как вы это делаете, зависит от вас (диск или память, расширения, формат и т. Д.). Это твой кеш.

Вы должны быть осторожны с устаревшей кешей. Это когда информация, имеющаяся в вашем кэше, не синхронизирована с исходным источником данных. Вы должны определить для своего приложения, насколько приемлемы устаревшие данные, и при необходимости запросить, заменив значения кеша.

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