我必须为Android应用开发RESTful API
,并决定使用slim框架使用PHP。
某些背景,目前每次客户端应用程序发出请求时,服务器都会执行一些数据库操作并创建有效负载。这在应用程序使用的高峰时段导致服务器上的高负载。因此,我正在寻找一种缓存此有效负载的方法,并在请求到来时使其可用。与读取次数相比,此缓存很少更新(仅在管理员更改数据库时)。
为了测试这个,我尝试了以下代码,
在index.php中
$app->flag = 1;
终点
$app->get("/getContent", function() use ($app){
if($app->flag == 1){
echo 'Changing value';
$app->flag = 0;
return;
}
echo $app->folder;
});
理想的情况是如果它打印"改变价值"第一次,然后是0。但是' $app->flag
'的价值始终为1
,位于端点的起始处。如何在连续调用终点之间保持数据?
另外,如果我每次都将有效负载存储在一个文件中并执行I / O来处理端点请求会更好吗(如果管理员尝试在端点处更新文件,这会抛出I / O异常吗?正在为客户阅读吗?
我是PHP的新手,非常感谢您的见解,甚至其他想法也是如此。
答案 0 :(得分:0)
以下是我的建议:
您可以使用memcache存储数据吗?你进行一次数据库操作和处理,然后构建json并将其存储在memcache中(它将数据直接存储在内存中,作为一个优点,你可以避免I / O操作)
执行所有数据库处理,构建json并将其保存在另一个表中(用于缓存结果)。这种方法主要关注的是一次性访问数据库的用户数量。虽然简单读取并且确定查询结果将由数据库引擎本地缓存,但您必须考虑一次使用的数据库连接数