cache可以用于、findvaluecolumn方法,以及其衍生方法,使用cache方法后,在缓存有效期之内不会再次进行数据库查询操作,而是直接获取缓存中的数据,关于数据缓存的类型和设置可以参考缓存部分。

    下面举例说明,例如,我们对find方法使用cache方法如下:

    第一次查询结果会被缓存,第二次查询相同的数据的时候就会直接返回缓存中的内容,而不需要再次进行数据库查询操作。

    1. Db::table('think_user')->cache(true,60)->find();
    2. // 或者使用下面的方式 是等效的

    表示对查询结果的缓存有效期60秒。

    cache方法可以指定缓存标识:

    这样,在外部就可以通过\think\Cache类直接获取查询缓存的数据,例如:

    1. $data = \think\Cache::get('key');

    这里的缓存自动更新是指一旦数据更新或者删除后会自动清理缓存(下次获取的时候会自动重新缓存)。

    当你删除或者更新数据的时候,可以使用cache方法手动更新(清除)缓存,例如:

    1. Db::table('think_user')->cache('user_data')->update(['id'=>1,'name'=>'thinkphp']);

    最后查询的数据不会受第一条查询缓存的影响,确保查询和更新或者删除使用相同的缓存标识才能自动清除缓存。

    最后查询的数据会是更新后的数据。