фильтровать элементы хранилища данных по ключу/значению (особенно APC)

Когда я начал работать с APC, я ожидал, что есть способ создавать категории для кешированных элементов, а не только пары ключ/значение. потому что я хочу очистить кеш только для одного приложения или только для одной части моего приложения. когда я обнаружил, что это только пары ключ/значение, в моей голове возник новый вопрос: есть ли способ фильтровать ключи в кеше APC с помощью REGEX, а не по точному совпадению ключей?


person Mohammad Reza Esmaeilzadeh    schedule 09.06.2013    source источник
comment
я нашел этот ответ: stackoverflow.com/ вопросы/9149322/ключ-группы-с-apc-кэшем/   -  person Mohammad Reza Esmaeilzadeh    schedule 10.06.2013


Ответы (1)


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

Однако вы могли бы,

  • либо сохранить массив со списком ключей в APC
  • поддерживать такой массив в файле include (в зависимости от того, насколько динамичен список)

В APC скажем, что у вас есть список ключей

'x-orange' : value, 'x-apple' : value, 'x-banana' : value, 
'x-Life of Pi' : value, 'x-The Hobbit' : value,...

Например, массив категорий в файле include или в переменной APC.

$cats = array('Fruits' => array('orange','apple','banana'),
              'Movies' => array('Life of Pi', 'The Hobbit'), ...

Затем вы можете получить данные APC по категориям

$mycat = ...; // eg Movies
foreach ($cats[$mycat] as $key) {
   echo "$key : " . apc_fetch('x-' . $key);
}
person Breaking not so bad    schedule 09.06.2013
comment
я нашел этот ответ (stackoverflow.com/ вопросов/9149322/key-groups-with-apc-cache/), и мне интересно, почему нет готового инструмента для обработки этого (может быть, мне следует его сделать) - person Mohammad Reza Esmaeilzadeh; 10.06.2013