Как реализовать прототип системы кэширования на PHP? - PullRequest
1 голос
/ 09 февраля 2010

Проблема в том, как сделать это эффективно при проверке истечения срока действия кэша?

Можете ли вы объяснить с помощью какой-то действительно базовой демонстрации?

Ответы [ 3 ]

0 голосов
/ 09 февраля 2010

Пример кода: проверка срока действия кэша

DEFINE('time_to_live',60);

 class MyCacheManager {

    function load(key) {
       if(filemtime(/data/cache/key.dat) > time_to_live) {
         //expired!
       }

    }

 }//CLASS
0 голосов
/ 12 февраля 2010

Зависит от случая.

Лучший способ - генерировать статические данные и обслуживать их напрямую, например, через редирект в .htaccess, так что php не имеет ничего общего. Срок действия кэша истекает, когда ваши данные изменились, например, когда вы добавляете новый пост (тогда вы генерируете новый статический файл, перезаписывая старый).

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

0 голосов
/ 09 февраля 2010

Существует множество способов кэширования данных. Вы можете хранить их в оперативной памяти, на диске и т. Д. Я написал собственное решение, которое использует memcache / apc / filesystem в зависимости от того, что мне нужно для этой задачи, потому что я не смог найти решение, отвечающее моим требованиям. Вы можете увидеть некоторые примеры кэширования с PEAR_CacheLite & Zend_Cache . Как упоминалось в hobodave, у apc есть очень простой способ поместить данные в кеш с помощью ttl, но это может оказаться непрактичным в зависимости от вашего приложения. У каждого из них есть свои проблемы, поэтому покупатель остерегается.

...