我正在创建一个产品(在php中),它可以调用api来获取所需的信息,我想根据所使用的查询字符串将这些结果缓存/保存到mongodb中,以便下次调用相同的查询字符串从mongodb拉出而不是再次调用api。
我试图确保覆盖的唯一问题就是这个例子:搜索John Doe可能会在结果中返回John Michael Doe,再次搜索John Michael Doe我实际上希望这个搜索能够点击api,因为它会向下钻取更多时间约翰迈克尔多伊正在寻求从蒙戈拉出来。
我理解如何编写代码并进行拉动等,我只需要存储缓存的理论,我应该在mongo中创建一个表来保存每个搜索到的查询字符串并进行完全匹配,如果不是找到任何匹配的api?
非常感谢所有帮助。
答案 0 :(得分:3)
我认为通常的做法是使用md5散列查询参数,然后使用它作为存储结果的键。下次有人发送查询时,您再次哈希查询参数并检查数据库中是否已存在此密钥。如果是,则在没有调用API的情况下从db提供结果。
$key = md5(serialize($queryParams));