二级缓存

1.对象缓存

$record->get 默认会使用缓存的,当相同 id 的数据 update,delete时会清除缓存

2.find 缓存

如果 record 配置类 cacheKeys如

  1. public function cacheKeys(){
  2. return ['domain,account'];
  3. }
  4. $record->find(['domain'=>'1','account'=>'2'])会使用缓存

当update,delete 时 存在相同条件的条件的数据时会清空缓存

3.select缓存

  1. public function listAll(){
  2. $select=Good::select("g.*")->order("rank desc");
  3. $select->join("good_tag gt",'gt.good_id=g.id')->where("tag_id",$tag);
  4. $data=$select->cache()->page($page,$step);
  5. }

使用 cache 时,当查询条件关联的表发生变化时会清空缓存如上面关联表为 good 和 good_tag表,只需要这两个表中有新增加或更改删除缓存都会失效;所以设计表示需要者两张表的数据不能频繁变化,不然缓存会不断被击穿;设计表时可以将经常变化的表放在附加表,这两张表放基本内容

上一篇:record 更多方法   下一篇:多数据源