- 二级缓存
- 1.对象缓存
- 2.find 缓存
- 3.select缓存
二级缓存
1.对象缓存
$record->get 默认会使用缓存的,当相同 id 的数据 update,delete时会清除缓存
2.find 缓存
如果 record 配置类 cacheKeys如
public function cacheKeys(){
return ['domain,account'];
}
那 $record->find(['domain'=>'1','account'=>'2'])会使用缓存
当update,delete 时 存在相同条件的条件的数据时会清空缓存
3.select缓存
public function listAll(){
$select=Good::select("g.*")->order("rank desc");
$select->join("good_tag gt",'gt.good_id=g.id')->where("tag_id",$tag);
$data=$select->cache()->page($page,$step);
}
使用 cache 时,当查询条件关联的表发生变化时会清空缓存如上面关联表为 good 和 good_tag表,只需要这两个表中有新增加或更改删除缓存都会失效;所以设计表示需要者两张表的数据不能频繁变化,不然缓存会不断被击穿;设计表时可以将经常变化的表放在附加表,这两张表放基本内容
上一篇:record 更多方法 下一篇:多数据源