为什么缓存好像没有起作用?
有一个接口,返回的是所有课程列表,关联了2个子表,一共也只有128条数据,为什么我用了缓存之后,请求接口的耗时还是和不使用缓存差不多,比如直接查询是800毫秒,直接从缓存里取也还是800毫秒,而且能明显看到请求接口时cpu的波动,缓存是正常取到值的
代码如下:
public function getList()
{
try {
// $data = Course::with([‘lecturer’, ‘department’])->where(‘status’, 1)->get();
$data = Cache::rememberForever(‘courses’, function () {
return Course::with([‘lecturer’, ‘department’])->where(‘status’, 1)->get();
});
$res = [
“code” => “00”,
“data” => $data
];
return response()->json($res);
楼上已经把原因整理的差不多了,还有一条可以注意,那就是缓存的是对象,取出来的时候会重新实例化,可以尝试吧get的数据转为数组在缓存,这样会快一些,理论上一百多条数据读不读数据库影响不大~