Как лучше всего реализовать Memcached на сайте электронной коммерции - PullRequest
1 голос
/ 02 июля 2011

У меня есть большой веб-сайт ECommerce, на котором работает LAMP, и мне было интересно, как лучше всего реализовать Memcached?

  • Хранить все запросы в memcached в течение определенного периода - звучит бессмысленно

  • Храните в Memcached только определенные важные данные, такие как информация о продукте, и убедитесь, что соответствующие обновления могут правильно истечь - звучит как сквозное решение.

  • Сохраняйте сложные результаты запросов, которые не часто меняются - включает много статического кода

Попытка получить представление о том, какие изменения я должен внести, чтобы максимально эффективно использовать memcached.

Спасибо:)

Ответы [ 2 ]

2 голосов
/ 02 июля 2011

Я бы позволил вашим пользователям решать.

Другими словами, вместо того, чтобы пытаться угадать, что будет работать лучше, я бы переделал ВСЕ запросы к базе данных, чтобы использовать memcached по строкам;

  1. Может ли memcache ответить на этот запрос?Если это так - верните результаты из кэша.
  2. Если не 1), извлеките результаты из базы данных и запишите обратно в memcached, чтобы в следующий раз он находился в кэше.
  3. Убедитесь, что все ваши обновления / вставки/ удаляет недействительными соответствующие ключи кеша.

Теперь, учитывая, что 3) может быть сложным, я бы использовал этот фактор, чтобы выбрать, какие запросы загружать через кеш - если это сложно и / или требует много временичтобы сделать кеш недействительным, не кешируйте эти запросы для начала.

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

Стоит также сказать, что вы должны сначала убедиться, что база данных MySQL хорошо настроена, так как это можетчасто будет легче победить.Кэширование запросов, проверка сложных запросов с помощью Explain для настройки ваших индексов и т. Д., Все это может оказать большее влияние.

0 голосов
/ 02 июля 2011

Здесь нет способа настроить оптимизацию специально для вашей системы.
Либо вы вводите название используемой ОС, либо платите кому-то за анализ того, что у вас есть." Вот.(кроме того, для кеширования запросов вы можете делать это на уровне БД с достаточным объемом памяти)

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