### 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表,只需要这两个表中有新增加或更改删除缓存都会失效; 所以设计表示需要者两张表的数据不能频繁变化,不然缓存会不断被击穿; 设计表时可以将经常变化的表放在附加表,这两张表放基本内容