# 全自动缓存 * * * * * 上面讲解的缓存可以说是半自动的,因为还是需要人为写代码来进行管理,比如某商品被下架了 缓存下来的列表数据不会自动更新。 下面咱们来看下全自动缓存的策略 ![](https://box.kancloud.cn/b1e4f487f0ebdb5960715c1d7e63ff4f_790x960.png) **全自动缓存使用须知** 1.若开启了全自动缓存则直接进行数据表数据操作不会被更新(建议开发阶段不要启动,启动自动缓存后若直接操作数据表会导致数据显示不正确) 2.若使用全自动缓存需要使用支持的方法进行数据表操作(包括查询与更新) 3.启动全自动缓存后也可以通过属性值控制是否需要读取缓存或更新缓存 **全自动缓存启用** 将app目录下的config.php文件中配置is_auto_cache设置为 true(开启后建议将runtime目录清空) 设置为false则为关闭全自动缓存 **全自动缓存支持的查询方法** 目前全自动缓存仅支持 getList,getInfo 方法,分别用于查询列表与查询单条数据 **全自动缓存支持的更新方法** setInfo,updateInfo,setList,setFieldValue,deleteInfo 若这些内置的方法满足不了您的需求,可自己加上封装的方法(记得加上$this->updateCache($this);此方法才能自动更新缓存哈) **部分操作不需要更新缓存设置** ~~~ $this->modelActionLog->is_update_cache_version = false; ~~~ 比如某些场景咱们不想操作后让此缓存更新则可以使用上面的属性,若不写这句的话默认会自动更新 **部分查询不需要查询缓存设置** ~~~ $this->modelActionLog->no_auto_cache = true; ~~~ 比如某些查询列表或查询单条记录不希望从缓存中自动获取,可以使用以上属性控制获取最新数据