前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel 5.8 新特性系列 —— 缓存有效期单位调整

Laravel 5.8 新特性系列 —— 缓存有效期单位调整

作者头像
hedeqiang
发布2019-12-17 21:46:37
1.1K0
发布2019-12-17 21:46:37
举报
文章被收录于专栏:LaravelCodeLaravelCode

从 Laravel 5.8 开始,传递到缓存驱动的表示缓存有效期(TTL)的整型数据单位将会从分钟调整为秒,秒级缓存会使得开发者得以对缓存周期进行更加细粒度的控制,并且符合 PSR-16 标准:

The Time To Live (TTL) of an item is the amount of time between when that item is stored, and it is considered stale. The TTL is normally defined by an integer representing time in seconds, or a DateInterval object.

事物的有效期(TTL)指的是其从保存到失效之间的时间量,TTL的单位通常被定义为秒级,或者一个 DateIntervel 对象。

从 Laravel 5.0 到当前的稳定版本 Laravel 5.7,当你传整数到缓存存储 操作,例如 put()remember(),持续时间都以分钟表示:

代码语言:javascript
复制
Cache::remember('active-posts', 5, function () {
    return Post::active()->get();
});

为了简化从早期版本(5.5或更高版本)到 Laravel 5.8 的升级路径,你还可以传递一个 DateTimeInterface 或者 DateInterval 对象到 Cache::put() 方法,而不必将所有调用处的数据单位转化为秒,通过这种方式调用的另一个好处是可以对缓存时间有更加清晰和多维的控制:

代码语言:javascript
复制
Cache::remember('active-posts', \DateInterval::createFromDateString('5 minutes'), function () {
    return Post::active()->get();
});

下面是一个使用 CarbonaddMinutes() 方法的示例

代码语言:javascript
复制
Cache::remember('active-posts', now()->addMinutes(5), function () {
    return Post::active()->get();
});

您可以看到 Dries Vints 为即将推出的 Laravel 5.8 版本所做的更改!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档