模型关系查询如何缓存
项目里有模型关系渴求式查询,比如:
GoodsSku::with(['image','goods','favorites' => function(Builder $query) {$query->where('user_id', auth()->id())}])->paginate();
在赶进度时,这些查询写着舒服一时,现在要加缓存,请问怎么处理能少改一些代码?
我的想法是:最好能拆分成实体的缓存和列表的缓存。我在接触 Laravel 框架之前的经验都是自己组织 in 查询解决 N+1 问题,这样就比较容易加缓存:列表缓存一般只存有序的主键,列表缓存会冗余一些数据(比如固定查询头部 1000 条数据的主键,之后的不走缓存),再通过主键加载不同的实体数据,这时再查实体数据的缓存或根据主键的 IN 条件去库里查询数据。
大家平时是怎么加缓存的哪?
推荐文章: