Я использую Memcached в приложении CakePHP для кэширования наборов результатов MySQL.Один набор результатов, который я кеширую, является пустым примерно половину времени.
Проблема, с которой я сталкиваюсь, заключается в том, что когда набор результатов пуст и я устанавливаю ключ Memcached, он устанавливает пустой / ложный результат изМетод find в CakePHP.
Когда я проверяю ключ Memcached в моем скрипте при загрузке следующей страницы, он снова запускает запрос, поскольку при чтении значения ключа Memcached должно возвращаться значение false.
Вот мой общий Memcachedлогика с использованием утилиты CakePHP Cache:
if(!$resultsArray = Cache::read('results_array')) {
$resultsArray = $this->Model->find('all', $params);
Cache::write('results_array', $resultsArray);
}
Рекомендуется проверять кэш, чтобы различать несуществующий ключ Memcached и ключ, который содержит ложное / пустое значение из предыдущей функции поиска.?(возможно, это больше касается PHP / программирования, чем Memcached).