为了账号安全,请及时绑定邮箱和手机立即绑定

小白求问:我想缓存一个使用率高且耗时久的查询应该怎么做?

小白求问:我想缓存一个使用率高且耗时久的查询应该怎么做?

PHP
哈士奇WWW 2019-03-15 18:41:38
最近在看缓存相关的内容,现在有点搞不懂该怎么正确的使用缓存,在什么场景使用缓存。求各位大佬指点一下。我先举个例子:假如现在我有一个查询比较频繁而且时间比较久,我想缓存这个查询。 未添加缓存的代码:    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
提交
取消
意见反馈 帮助中心 APP下载
官方微信