2013-04-09 3 views
1

Я создаю продукт (в php), который работает от вызова api для получения необходимой информации, я хочу кэшировать/сохранять эти результаты в mongodb на основе использованных строк запроса, следующий вызов тех же строк запроса вытаскивает из mongodb, а не вызывает api снова.Кэширование и поиск API

Моя единственная проблема, я пытаюсь удостовериться, что я прикрываю этот пример: Поиск Джон Доу может вернуть Джона Майкла Доу в результаты, снова поиск Джон Майкл Доу. Я действительно хочу, чтобы этот поиск ударил по api, поскольку он сверлит больше, и в следующий раз Джон Майкл Доу - поиск, чтобы вытащить из монго.

Я понимаю, как писать код и делать тяги и т. Д. Мне просто нужна теория сохранения кеширования, следует ли мне сделать таблицу в mongo, которая сохраняет каждую искомую строку запроса и выполняет точное совпадение, и если это не так, t найти какие-либо совпадения попадают в api?

Вся помощь очень ценится.

ответ

3

Я думаю, что обычной практикой является хэш параметров запроса с использованием md5, а затем использование этого в качестве ключа для хранения результата. В следующий раз, когда кто-то отправит запрос, вы снова измените параметры запроса и проверьте, существует ли этот ключ в db. Если да, то вы получаете результат из db, если вы не вызываете API.

$key = md5(serialize($queryParams)); 
+0

Похоже, что это выполнило бы работу, я должен сохранить ключ вместе с именем, именем, фамилией и т. Д.? Чтобы я мог использовать эти значения для поиска фактической таблицы с данными после ключевого совпадения? –

+0

хорошее решение +1 – rinchik

+0

Вы можете сохранить параметры запроса, если у вас есть случай использования, чтобы запросить их. Невозможно восстановить параметры запроса из md5. –

Смежные вопросы