ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一级缓存: 对象缓存 get方法 默认会使用缓存的, > $record->get($id); `$record->update()` 或`$record->delete()` 会自动的更新或删除缓存 如果摸个 recode 不想使用一级缓存可以使用 实现 空接口 NoAutoCache ## 二级缓存 :find缓存 如果 record 配置类 cacheKeys 如 ~~~ public function cacheKeys(){ return ['domain,account']; } 那 $record->find(['domain'=>'1','account'=>'2'])会使用缓存 ~~~ 当update,delete 时 存在相同条件的条件的数据时会清空缓存 ## 三级缓存 select缓存 三级缓存是 sql 级别的缓存,相同的 sql 多次执行会直接使用缓存 >$select->cache("cache_key") 缓存会被存入键为cache_key的 redis 的 hash结构里 ~~~ 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("cache_key")->page($page,$step); } ~~~ ### 删除三级缓存 >Cache::remove('cache_key') 会清空键为cache_key 的 hash 结构内的所有缓存内容