Используйте memcache или аналогичный инструмент
Каждый элемент в кеше имеет ключ, дату и время истечения срока действия
Вам нужно сделать ключ полезным для вашего приложения. Типичная модель ключа - это Security.Domain.Query.QueryValue для наборов или Security.Domain.ID для отдельных объектов
, например
ALL.Product.Q.Red - это набор из домена Продукты , использующий запрос Красный для всех пользователей
Admin.Product.Q.Blu - это набор из домена Products , использующий запрос Blu только для Admin пользователей
ALL.Customer.O.12345 - это один объектный граф из Customer ID домена 12345 для всех пользователей
При необходимости вы также можете добавить форматы к ключу.
Таким образом, когда ваше веб-приложение отправляет запрос на данные для поля автозаполнения, веб-служба, обрабатывающая вызов, сначала запрашивает данные из memcache, а если не найден или не истек, то только потом выполняет дорогой запрос к базе данных
например. Автозаполнение для поиска товаров
- Запрос: http://server.com/product?q=gre&format=json
- Сервер генерирует ключ memcache ALL.Product.Name.gre.json
- Сбой запроса Memcache
- Генерация SQL-запроса Выбор идентификатора, имени, цены из продукта, где имя подобно 'gre%'
- Форматировать результат в Json
- Сохранить результат в memcache
- Вернуть результат в браузер
и в следующий раз
- Запрос: http://server.com/product?q=gre&format=json
- Сервер генерирует ключ memcache ALL.Product.Name.gre.json
- Запрос Memcache успешно выполняется
- Вернуть результат в браузер
Секрет заключается в том, что модель ключа работает для всех случаев использования memcache и не генерирует дубликаты ключей для различных задач. Не забудьте закодировать разделители в параметрах запроса (в примере «.»)