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);
最后查询的数据会是更新后的数据。
相关文档
- 免费关键词排名优化,关键词排名优化查询
- 河北网络营销咋搞?选对平台是关键,这些方法要知道
- 网络推广或SEO从业者必看!关键词排名批量查询了解一下?
- 教育推广受关注,了解基本概念和方法很重要
- 曾经在南京超普及的查询工具——丁丁地图,帮了咱不少忙
- 快手照片影集制作方法大揭秘,简单几步轻松搞定
- 想网上推广?刷论坛推广软件功能及靠谱选择方法来啦
- 网站运营必看!alexa排名查询方法及用途全解析?
- 信息爆炸时代常遇陌生事物?快用百度APP或网站查询
- 日常电脑或手机删网址咋操作?不同设备浏览器方法不同
- 旺道seo软件使用方法及效果大揭秘,到底值不值得入手?
- 淘宝关键词查询实用指南,新手速看!3种免费查询工具揭秘
- 丁丁地图查询实用指南:公交地铁步行引导及实时路况全解析
- 淘宝开店必看!如何查询关键词排名及重要性?
- 哈尔滨独具魅力,导航超重要!这些APP及选路线方法要知道
- 佛山搞网站优化常遇难题?掌握这些方法轻松提升排名
- 探秘外链查询工具:作用几何?如何通过它了解网站外部链接情况?
- 如何快速提升网站权重?这些方法你不能错过
- 聊聊个性化首页:自定义设置与内容展现方式,好处及模块挑选方法
- 聊聊热门关键词那些事儿:基本介绍与关键内容拆解方法
上一篇: Eyoucms程序开发:lock
下一篇: Eyoucms程序开发:comment