我希望在Laravel项目中缓存一个路由,并且每5分钟清除一次。
我查了很多文章,但只找到了artisan route:cache
命令,而不知道是否可以配置缓存时间。
这是我的路由routes/web.php
:
$router->group(['middleware' => ['api','cors']], function () use ($router) {
$router->get('game', ['uses' => 'GameController@checkGameStatus']);
$router->get('promo', ['uses' => 'PromoController@sendPromoCode']);
$router->get('get_leaders', ['uses' => 'GameController@getLeaders']); // <-- cache this for 5m
});
每当用户加载评分页面时,
getLeaders()
函数都会启动DB请求以获取和计算所有用户结果。因此,我希望减少DB负载,并使其每5分钟计算一次所有结果。其余时间,get_leaders
路由应仅发送缓存的json输出。如何设置这样的配置?是否可以只使用Laravel(artisan)完成,还是应该更改
.htaccess
文件(我正在使用apache)?