Когда вы должны начать использовать Memcached? - PullRequest
7 голосов
/ 20 ноября 2008

Я начинаю изучать использование Memcached с PHP, и мне было интересно; Есть ли момент, когда вы должны начать использовать его? Всегда ли эффективнее кешировать данные или он становится эффективным только после того, как ваш сайт получает определенное количество посещений? Предположительно, есть дополнительные издержки, связанные с Memcached, поэтому, когда выигрыш в скорости перевешивает это?

Заранее спасибо за любые советы.

Ответы [ 4 ]

9 голосов
/ 20 ноября 2008

Вы должны начать использовать memcached, когда не используете его, начинает влиять на ваш сайт / сервер.

Так что, когда у вас просто 100 посетителей в день, и ваш сайт все еще реагирует быстро, не беспокойтесь об этом.

Но если у вас время выполнения где-то около 200 мс или более на страницу, а сайт тоже работает медленно, вы должны искать узкие места с помощью некоторого профилировщика PHP (XDebug интегрирует тот, который вы можете использовать в сочетании с WinCacheGrind или KCacheGrind) , Особенно кеширование запросов к базе данных должно сэкономить вам время загрузки.

5 голосов
/ 20 ноября 2008

Правило № 1, когда речь заходит об оптимизации производительности: не оптимизируйте, пока в этом нет необходимости!

Если у вас нет проблем с производительностью, вам не нужно оптимизировать. Другие хорошие правила включают в себя:

  • Не оптимизируйте, пока не закончите написание приложения. Вы редко знаете, где будут возникать реальные проблемы с производительностью при разработке, и это только сделает ваш код неаккуратным и более трудным для изменения, когда вам нужно будет внести изменения в будущем.

  • Используйте профилировщик или другой способ измерения определенных фрагментов кода, чтобы фактически измерить то, что занимает много времени, и оптимизировать эти разделы. Не просто догадывайтесь о том, что занимает много времени. На самом деле измерить это.

3 голосов
/ 20 ноября 2008

Если вы используете MySQL в качестве базы данных, запустите команду show processlist на консоли MySQL в пиковое время. Если есть много запросов со стороны PHP, ожидающих более 500 мсек, пришло время обратиться к memcached.

1 голос
/ 27 февраля 2009

Сначала подумайте о что / когда / если кэшировать, прежде чем подумать, следует ли использовать Memcached для кэширования.

Если у вас есть какой-то «объект», который используется для ответа на лотов запросов, для создания которых требуется лотов чтений базы данных. И ваш сайт не может справиться с нагрузкой из-за воссоздания этого «объекта». Вам также нужен хороший четко определенный ключ для элемента, который вы кэшируете.

«Объект», который вы кэшируете, должен читаться гораздо чаще, чем строки базы данных, использованные для его создания, изменяется, иначе выгода от использования кеша, скорее всего, будет меньше, чем стоимость управления кешем после того, как бит данных изменено.

Кэширование отдельных строк базы данных не даст вам преимущества совпадения.

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