Slim app(PHP):需要存储持久性/缓存数据

时间:2016-10-19 13:05:20

标签: php rest caching slim restful-architecture

我必须为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的新手,非常感谢您的见解,甚至其他想法也是如此。

1 个答案:

答案 0 :(得分:0)

以下是我的建议:

  1. 您可以使用memcache存储数据吗?你进行一次数据库操作和处理,然后构建json并将其存储在memcache中(它将数据直接存储在内存中,作为一个优点,你可以避免I / O操作)

  2. 执行所有数据库处理,构建json并将其保存在另一个表中(用于缓存结果)。这种方法主要关注的是一次性访问数据库的用户数量。虽然简单读取并且确定查询结果将由数据库引擎本地缓存,但您必须考虑一次使用的数据库连接数