Eyoucms程序开发:cache
cache方法用于查询缓存操作,也是连贯操作方法之一。
cache可以用于select、find、value和column方法,以及其衍生方法,使用cache方法后,在缓存有效期之内不会再次进行数据库查询操作,而是直接获取缓存中的数据,关于数据缓存的类型和设置可以参考缓存部分。
下面举例说明,例如,我们对find方法使用cache方法如下:
Db::table('think_user')->where('id=5')->cache(true)->find();
第一次查询结果会被缓存,第二次查询相同的数据的时候就会直接返回缓存中的内容,而不需要再次进行数据库查询操作。
默认情况下, 缓存有效期是由默认的缓存配置参数决定的,但cache方法可以单独指定,例如:
Db::table('think_user')->cache(true,60)->find();
// 或者使用下面的方式 是等效的
Db::table('think_user')->cache(60)->find();
表示对查询结果的缓存有效期60秒。
cache方法可以指定缓存标识:
Db::table('think_user')->cache('key',60)->find();
指定查询缓存的标识可以使得查询缓存更有效率。
这样,在外部就可以通过\think\Cache类直接获取查询缓存的数据,例如:
$result = Db::table('think_user')->cache('key',60)->find();
$data = \think\Cache::get('key');
cache方法支持设置缓存标签,例如:
Db::table('think_user')->cache('key',60,'tagName')->find();
缓存自动更新
这里的缓存自动更新是指一旦数据更新或者删除后会自动清理缓存(下次获取的时候会自动重新缓存)。
当你删除或者更新数据的时候,可以使用cache方法手动更新(清除)缓存,例如:
Db::table('think_user')->cache('user_data')->select([1,3,5]);
Db::table('think_user')->cache('user_data')->update(['id'=>1,'name'=>'thinkphp']);
Db::table('think_user')->cache('user_data')->select([1,5]);
最后查询的数据不会受第一条查询缓存的影响,确保查询和更新或者删除使用相同的缓存标识才能自动清除缓存。
如果使用find方法并且使用主键查询的情况,不需要指定缓存标识,会自动清理缓存,例如:
Db::table('think_user')->cache(true)->find(1);
Db::table('think_user')->update(['id'=>1,'name'=>'thinkphp']);
Db::table('think_user')->cache(true)->find(1);
最后查询的数据会是更新后的数据。
相关文档
- 外链查询工具哪家强?新手避坑指南_2024免费神器推荐
- 新站如何快速推广_低成本高效方法详解
- 新网站如何做推广?网站推广免费方法有哪些?
- 旺道seo优化究竟适合新站使用吗深入解析其效果与方法
- 友链查询_友链交换技巧有哪些?
- 好搜排名提升软件怎么用?手把手教你正确操作方法
- 新站如何快速提升排名?长尾关键词挖掘方法有哪些?
- 新站流量生成方法如何快速获取访问3步实操指南
- 如何设计qq空间——免费装扮方法真的靠谱吗?
- 免费网站收录平台有哪些?_新站免费收录方法怎么做?
- 东莞网络推广方法_百度推广公司选择指南
- 云南网站推广方法有哪些?云南SEO优化报价高吗?
- 云搜seo优化方法?云搜seo效果监测?
- 南京丁丁地图公交查询怎么用?丁丁地图生活服务功能有哪些?
- 新乡SEO优化技巧_新乡SEO实战方法?
- 效果付费怎么做?详细方法步骤指南
- 搜狗关键词快速排名方法真的有效吗?
- 新站搜索关键词排名技巧与提升方法全解读
- 新站如何快速提升热门关键词排名_新站快速收录方法?
- yahoo收录怎么加快?新站快速收录方法指南
上一篇: Eyoucms程序开发:lock
下一篇: Eyoucms程序开发:comment

