Игнорировать кеширование определенного файла с помощью APC

Есть ли способ предотвратить кеширование определенного файла с помощью APC? Вариант использования выглядит следующим образом:

Приложение, расположенное в облаке, которое динамически изменяет свой размер (вращая серверы вверх и вниз по мере необходимости). Сценарий config.php должен знать о новых IP-адресах, когда они становятся доступными или недоступными.

Поскольку эти изменения происходят достаточно часто, а файл config.php является довольно простым, было бы идеально не беспокоиться об очистке APC только для одного файла.

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

3 ответа

Решение

Да. Вы должны проверить директиву конфигурации apc.filter. Еще один вопрос | PHP Документы

У меня есть похожий вариант использования. Я задавал себе один и тот же вопрос много раз, и я не смог найти решение. Однако мое решение состояло в том, чтобы создать быстрый скрипт, который позаботится об очистке кэша APC для каждого сервера. Каждый раз, когда я перестраиваю приложение, мне нужно нажать файл на каждом сервере, чтобы очистить кэш кода операции, используя apc_clear_cache Если вам нужно очистить только один файл, вам может быть лучше с apc_compile_file

Надеюсь это поможет.

Я не знаю, как сделать то, что вы предлагаете, но вы должны быть в состоянии обойти это.

Очевидное решение - не хранить данные в php-файле. Поскольку у вас уже есть APC, почему бы просто не сохранить данные конфигурации в APC (в виде кэшированных данных, а не кодов операций).

Так что, что бы ни изменяло config.php, теперь сделало бы что-то вроде этого:

  1. Изменить какой-нибудь не-php файл (что-то.ini или что-то в этом роде)
  2. Признать недействительной запись в кэше APC.

Когда config.php нужны данные, они обычно читают из кэша. Если кеш был признан недействительным, он считывает / анализирует данные из INI-файла, обновляет кеш и продолжает работать как обычно.

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

Другие вопросы по тегам