小白求问:我想缓存一个使用率高且耗时久的查询应该怎么做?大佬们有什么好的建议?

最近在看缓存相关的内容,现在有点搞不懂该怎么正确的使用缓存,在什么场景使用缓存。求各位大佬指点一下。
我先举个例子:假如现在我有一个查询比较频繁而且时间比较久,我想缓存这个查询。未添加缓存的代码:
publicfunctiontest(array$array1,array$array2)
{
returnTable1::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();
}
下面是我写的添加了缓存的代码,但是不知道对不对。
publicfunctiontest(array$array1,array$array2)
{
$str1=implode(",",sort($array1));
$str2=implode(',',sort($array2));
$test=\Cache::remember("test$str1$str2",10,function()use($array1,$array2){
returnTable1::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;
}
像上述的情况应该怎么去缓存。还有就是应该在什么场景去使用缓存。求教....
潇潇雨雨
浏览 260回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript