Интересным в этом вопросе является количество направлений, по которым вы можете идти.
Я не уверен, что кэширование - ваш лучший вариант просто из-за большого набора данных и относительно небольшого числа запросов к нему. Вот несколько идей.
1) Сборка оперативного диска . Свяжите свою таблицу базы данных mysql, чтобы использовать раздел ramdisk. Я никогда не пробовал этого, но было бы интересно попробовать.
2) В Linux обычно очень быстрая файловая система. Создайте структурированную файловую систему, которая разбивает записи на файлы, и просто вызовите file_get_contents () или file_exists (). Конечно, это решение потребует от вас создания и поддержки файловой системы, что также будет весело. rsync может быть полезен для поддержания текущей файловой системы в актуальном состоянии.
Пример:
/002/209/001/299.txt
<?
$file = $this->build_file_from_ip($_GET['ip']);
if(file_exists($file)) {
// Execute your code.
}
?>