最近在看缓存相关的内容,现在有点搞不懂该怎么正确的使用缓存,在什么场景使用缓存。求各位大佬指点一下。我先举个例子:假如现在我有一个查询比较频繁而且时间比较久,我想缓存这个查询。 未添加缓存的代码: public function test(array $array1, array $array2)
{ return Table1::select('a', 'b','c')
->with([ 'with1' => function ($query) use($array1) {
$query->select('c', 'd')
->join('table2', 'table2.c', '=', 'table1.c')
->where($array1);
}
])
->whereIn('a', $array2)
->get();
}下面是我写的添加了缓存的代码,但是不知道对不对。public function test(array $array1, array $array2)
{
$str1 = implode(",", sort($array1));
$str2 = implode(',', sort($array2));
$test = \Cache::remember("test$str1$str2",10, function () use ($array1, $array2) { return Table1::select('a', 'b','c')
->with([ 'with1' => function ($query) use($array1) {
$query->select('c', 'd')
->join('table2', 'table2.c', '=', 'table1.c')
->where($array1);
}
])
->whereIn('a', $array2)
->get();
}); return $test;
}像上述的情况应该怎么去缓存。还有就是应该在什么场景去使用缓存。求教....
2 回答
- 2 回答
- 0 关注
- 438 浏览
添加回答
举报
0/150
提交
取消