Есть ли в php эквивалент memcached? - PullRequest
0 голосов
/ 21 февраля 2011

На моем сайте я хочу показать некоторые данные, которые будут отображаться из БД в течение всего дня.

Например, если у меня есть часть, подобная «Картинке дня», тогда я выберу случайное изображение из БД и покажу его на странице.

Так что я не хочузапрос должен быть выполнен для каждого запроса.поэтому я решил использовать memcached для кэширования результатов запросов в течение определенного времени (может быть, в течение 24 часов) ..

Все работало в localhost, но у моего хостинг-провайдера их нет .. Поэтому я должен использовать несколько разныхконцепции для достижения этой цели.

Есть ли эквивалент в memcache в php?

Ответы [ 7 ]

3 голосов
/ 21 февраля 2011

Вы можете использовать файл для кэширования и вызов filemtime(), чтобы узнать, нужно ли обновлять выбор. Или запись в базе данных, содержащая выбор и дату, когда он был сделан.

Оба метода будут отлично работать для этой задачи - memcache звучит немного излишне (хотя, очевидно, удобно использовать, когда он доступен)

2 голосов
/ 21 февраля 2011

Хотя кэш APC (http://au2.php.net/apc) не предназначен для этого, он может работать для вас, если он включен вашим хостинг-провайдером.

1 голос
/ 21 февраля 2011

Вы должны сохранить его как файл. Кэш не является хранилищем, и вы всегда должны ожидать, что кэш очищается, даже если время ожидания еще не истекло.

Однако вам не нужно сохранять файл как (например, "pictoreOfTheDay.jpg"). В любом случае вы должны сохранить изображения где-нибудь, поэтому вам нужно только сохранить имя файла одного из них.

0 голосов
/ 21 февраля 2011

Для этого вы можете использовать файловый кеш. Пример учебника http://fclose.net/php-file-cache-sinifi

0 голосов
/ 21 февраля 2011

Это зависит от того, что поддерживает ваш хостинг-провайдер.

В качестве крайней меры вы всегда можете записать содержимое в файл на диске и либо открыть / прочитать / закрыть файл, либо использовать fpassthru () для выводафайл напрямую

0 голосов
/ 21 февраля 2011

Если вы пользуетесь виртуальным хостингом и не можете установить memcached, я думаю, что единственный вариант - сохранить его в базе данных.

  • Сохраните кэшированные результаты в виде плоского файла, который будет относительно медленным.
  • Вы можете настроить свой сервер MySQL для запуска базы данных в памяти для повышения производительности.
  • Запуск экземпляра sqlite.

Все зависит от того, какие опции доступны на вашем хостинге.

0 голосов
/ 21 февраля 2011

PHP имеет расширение memcache: http://php.net/manual/en/book.memcache.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...