Кажется, что PEAR :: Cache_Lite имеет некоторую защиту для решения проблем параллелизма.
Если вы посмотрите руководство по constructor Cache_Lite::Cache_Lite
, у вас есть следующие варианты:
fileLocking
включить / отключить блокировку файлов. Может избежать повреждения кэша при плохом
обстоятельства.
writeControl
включить / отключить контроль записи. Включить управление записью будет немного медленно
запись в кеш, но не в кеш
чтение. Контроль записи может обнаружить некоторые
испорченные файлы кэша, но, возможно, это не так
идеальный контроль.
readControl
включить / отключить контроль чтения. Если включено, управляющий ключ встраивается в
файл кэша и этот ключ сравнивается
с рассчитанным после
чтение
readControlType
Тип контроля чтения (только если контроль чтения включен). Должно быть "MD5"
(для хеш-контроля MD5 (лучше, но
самый медленный)), 'crc32' (для хэша crc32
контроль (чуть менее безопасно, но
быстрее)) или 'strlen' (для длины
только тест (самый быстрый))
Какой из них использовать, зависит только от вас, и будет зависеть от того, какую производительность вы готовы пожертвовать - и риск параллельного доступа, который, вероятно, существует в вашем приложении.
Вы также можете захотеть взглянуть на Zend_Cache_Frontend_Output
, чтобы кэшировать страницу, используя что-то вроде Zend_Cache_Backend_File
в качестве бэкэнда.
Похоже, что он также поддерживает некоторую защиту - тот же самый набор вещей, который Cache_Lite
уже дал вам (так что я не буду копировать-вставлять второй раз)
Как примечание, если ваш сайт работает на общем хосте, я полагаю, что у него не так много пользователей? Таким образом, риски одновременного доступа, вероятно, не так высоки, не так ли?
В любом случае, я, вероятно, не стал бы искать дальше того, что предлагают эти буксирные фреймворки: этого уже, вероятно, более чем достаточно для нужд вашего приложения: -)
(Я никогда не видел, чтобы какой-то механизм кэширования был «более безопасным», чем те, которые позволяют вам делать ... И я никогда не сталкивался с какой-то катастрофической проблемой параллелизма такого рода ... За 3 года PHP-разработки)
В любом случае: веселиться!