• 二级缓存
    • 1.对象缓存
    • 2.find 缓存
    • 3.select缓存

    二级缓存

    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 更多方法   下一篇:多数据源