我喜欢基于位置的数据缓存(在服务器上)系统,用于为移动应用程序提供数据。即,如果某个用户从一个位置请求数据(这是来自同一区域的所有用户共同的),我将从DB中获取值并显示给他们。但是如果第二个用户在相同位置的接下来的5分钟内检索到同一页面,那么我不想查询数据库中存在的数百万条记录,如果它存在于文件缓存中,我就可以接受它们。那么PHP现在有哪些可用的东西?
答案 0 :(得分:4)
我不知道PHP中有任何这样的东西,但用PHP创建自己的缓存引擎并不难。您需要创建一个缓存目录,根据您获得的请求,您必须检查缓存目录中是否存在与该请求相对应的文件。
例如,您的主要参数是lat和long。 假设您获得了lat = 123和long = 234(取一些随机值)的请求,您将检查您的缓存文件夹是否存在名为123_234.data的文件。如果它存在,则不是查询数据库而是读取文件并将内容作为输出发送,否则您从数据库中读取并在发送响应之前在文件缓存/ 123_234.data中写入该响应。这样,您可以稍后提供文件,而无需再次查询数据库。
<强>挑战:强>
我不知道为什么有人拒绝投票,我相信这是一个非常好的和聪明的问题。我的upvote:)
答案 1 :(得分:1)
如果您只关心查询...一种方法可能是一个db表,它将查询结果存储为json或序列化的php对象以及匹配位置所需的任何字段。
以最适合的间隔运行的cron作业将清除过期的结果