6cache
未知
2021-07-04 10:58:27
0

cache方法用于查询缓存操作,也是连贯操作方法之一。

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

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

Db::table('user')->where('id',5)->cache(true)->find();
复制

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

默认情况下, 缓存有效期是由默认的缓存配置参数决定的,但cache方法可以单独指定,例如:

Db::table('user')->cache(true,60)->find();
// 或者使用下面的方式 是等效的
Db::table('user')->cache(60)->find();
复制

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

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

Db::table('user')->cache('key',60)->find();
复制

指定查询缓存的标识可以使得查询缓存更有效率。

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

$result = Db::table('user')->cache('key',60)->find();
$data = \think\facade\Cache::get('key');
复制

cache方法支持设置缓存标签,例如:

Db::table('user')->cache('key',60,'tagName')->find();
复制

缓存自动更新

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

当你删除或者更新数据的时候,可以调用相同keycache方法,会自动更新(清除)缓存,例如:

Db::table('user')->cache('user_data')->select([1,3,5]);
Db::table('user')->cache('user_data')->update(['id'=>1,'name'=>'thinkphp']);
Db::table('user')->cache('user_data')->select([1,3,5]);
复制

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

如果使用主键进行查询和更新(或者删除)的话,无需指定缓存标识会自动更新缓存

Db::table('user')->cache(true)->find(1);
Db::table('user')->cache(true)->where('id', 1)->update(['name'=>'thinkphp']);
Db::table('user')->cache(true)->find(1);
复制

上一篇:6lock

下一篇:6comment

相关内容

网络木马攻击中的隐藏技术及...
本文详述了网络木马攻击中的伪装、加密、进程注入与隐藏等技术手段及其...
2025-02-10 04:23:42
触发器与事件处理程序的比较
触发器与事件处理程序是用于处理特定事件的两种机制。触发器是数据库对...
2025-02-09 12:23:36
优化MySQL查询性能的关...
摘要: 本文介绍了MySQL中索引的概念、作用及创建、使用和优化...
2025-02-09 11:00:40
索引在MySQL中的最佳实...
MySQL索引最佳实践:明确需求,避免过度索引,选择合适类型,利用...
2025-02-09 10:23:41
MySQL索引与数据库性能...
MySQL索引是提升数据库性能的关键,通过合理使用索引可加速查询、...
2025-02-09 10:00:41
独家优惠链接:淘宝、京东、...
本文介绍了淘宝、京东、唯品会等电商平台如何领取和使用优惠券的攻略,...
2025-02-09 05:23:37

热门资讯

tp6开发规范 命名规范 请理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。 ThinkPHP6....
6高级查询 快捷查询 快捷查询方式是 一种多字段相同查询条件 的简化写法,可以进一步简化查询条件的写法,在多个字...
tp6多应用提示控制器不存在:... 第一个情况是没有使用composer安装扩展。 如果要使用多应用模式, 你需要win+r,cmd指针...
6配置 配置目录 单应用模式 对于单应用模式来说,配置文件和目录很简单,根目录下的 config 目录下面就...
6异常处理 和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面。 异...
6swoole 本篇内容主要讲述了最新的 think-swoole 扩展的使用。目前仅支持Linux环境或者MacO...
6助手函数 助手函数 系统为一些常用的操作方法封装了助手函数,便于使用,包含如下: 助手函数 描述 abort ...
6查询表达式 查询表达式 查询表达式支持大部分的SQL查询语法,也是 ThinkPHP 查询语言的精髓,查询表达式...
6路由参数 路由参数 路由分组及规则定义支持指定路由参数,这些参数主要完成路由匹配检测以及后续行为。 路由参数可...
6查询 模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对...