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软件都能查
- 百度排名查询有多重要?关乎流量与曝光率,你知道吗?
- QQ群推广的重要方法及选群、融入要点,你知道多少?
- 刷百度快照:看似高大上实则无内涵,方法简单粗暴
- 死链检测方法及常用的死链检测工具介绍
- 刷Alexa排名:看似高大上,实则用处不大,流行方法存问题
- 搞导购网站没人看还没钱推广?这些白嫖流方法快收藏
- 揭秘百度点击器:自动刷点击量原理及应对验证码方法
- 有效的微博营销方法:提高品牌知名度并推动流量
- 关于购物中心活动促销的关键要素和实施方法的全面讨论
- 用什么方法可以吸引蜘蛛?
- 让宝贝在搜索结果中靠前的方法:优化标题关键词及多样策略
- 友链查询工具怎么选?三大避坑指南+实战测评
- 小旋风万能蜘蛛池完美破版如何绕过授权?2025最新Redis缓存...
- 官网ChatGPT免费版使用方法:轻松体验AI聊天
- 关键词布局方法论
- 百中SEO技巧:2025年快速升排名的3大实战方法
- 2025蜘蛛池官网采购指南高性价比工具筛选方法论
- 如何使用插件/无插件优化WordPress网站浏览器缓存
- 如何实现采用高效的缓存策略提供静态资源
上一篇: Eyoucms程序开发:lock
下一篇: Eyoucms程序开发:comment