laravel框架cache::remember

发布时间:2021-07-10 23:30:51 阅读:1576次

我们经常需要对cache进行操作

常见的方法就是首先判断缓存是否存在,如果不存在,那么读取数据库,然后保存到缓存中

这样,下次读取就会先从缓存读取,减少了数据库读取的次数,降低了数据库的压力

在laravel框架中,有没有优雅的实现方法呢

我们可以用cache::remember来实现

代码简练优雅,而且不需要用json_encode,json_decode对数据组进行编码

以下为代码

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Test\ApiResponse\Facades\ApiResponse;

class NewClassController extends Controller
{
    //根据关数获取配置
    public function index(Request $request,$id)
    {   
        $res = Cache::remember("class_list_".$id,10,function () use($id){
            $res = DB::connection('mysql')->table('class')->select('id','name','preface')->where('type',$id)->where('status',1)->get()->toArray();
            foreach($res as $k=>&$v){
                $v = get_object_vars($v);
                $res[$k]['preface'] = env('CDN_COS').'upload/'.$v['preface'];
            }   
            return $res;
        }); 
        return ApiResponse::success(['list' => $res]);
    }   
}                                                                                                                                                           

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel框架cache::remember 出自老鄢博客 | 欢迎分享