首页 > php框架 > Laravel > 正文

PHP laravel缓存cache机制详解

WBOY
发布: 2022-11-01 15:24:51
转载
1679人浏览过

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于laravel中的cache为我们提供了三种缓存机制:redis,memcache,以及框架的文件缓存的相关内容,下面一起来看一下,希望对大家有帮助。

【相关推荐:laravel视频教程

Laravel中的cache为我们提供了三种缓存机制。

Redis,memcache,以及框架的文件缓存。

这里主要看的是cache中的文件缓存。

立即学习PHP免费学习笔记(深入)”;

一、访问多个缓存存储

使用 Cache 门面,你可以使用 store 方法访问不同的缓存存储器,传入 store 方法的键就是 cache 配置文件中 stores 配置数组里列出的相应的存储器:

$value = Cache::store('file')->get('foo');
Cache::store('redis')->put('bar', 'baz', 600);  // 10分钟
登录后复制

二、从缓存中获取数据

1.获取数据并设置默认值

(1):正常取值

$value = Cache::get('key');
登录后复制

(2):如果不存在,附默认值

$value = Cache::get('key', 'default');
登录后复制

(3):使用闭包操作,附默认值

$value = Cache::get('key', function() {
    return DB::table(...)->get();
});
登录后复制

2.检查缓存项是否存在

has 方法用于判断缓存项是否存在,如果值为 null 或 false 该方法会返回 false:

if (Cache::has('key')) {
    //
}
登录后复制

3.数值增加/减少

increment 和 decrement 方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的数目:

Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
登录后复制

4.获取 & 存储

有时候你可能想要获取缓存项,但如果请求的缓存项不存在时给它存储一个默认值。例如,你可能想要从缓存中获取所有用户,或者如果它们不存在的话,从数据库获取它们并将其添加到缓存中,你可以通过使用 Cache::remember 方法实现:

$value = Cache::remember('users', $seconds, function() {
    return DB::table('users')->get();
});
登录后复制

如果缓存项不存在,传递给 remember 方法的闭包被执行并且将结果存放到缓存中。

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图

你还可以使用 rememberForever 方法从缓存中获取数据或者将其永久存储起来:

$value = Cache::rememberForever('users', function() {
    return DB::table('users')->get();
});
登录后复制

5.获取 & 删除

如果你需要从缓存中获取缓存项然后删除,你可以使用 pull 方法,和 get 方法一样,如果缓存项不存在的话返回 null:

$value = Cache::pull('key');
登录后复制

三、缓存中存储数据

1.获取存储数据

你可以使用 Cache 门面上的 put 方法在缓存中存储数据。当你在缓存中存储数据的时候,需要指定数据被缓存的时间(秒数):

Cache::put('key', 'value', $seconds);
登录后复制

如果没有传递缓存时间到 put 方法,则缓存项永久有效:

Cache::put('key', 'value');
登录后复制

除了传递缓存项失效时间,你还可以传递一个代表缓存项有效时间的 PHP Datetime 实例:

$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt);
登录后复制

2.缓存不存在时存储数据

add 方法只会在缓存项不存在的情况下添加数据到缓存,如果数据被成功添加到缓存返回 true,否则,返回 false:

Cache::add('key', 'value', $seconds);
登录后复制

3.永久存储数据

forever 方法用于持久化存储数据到缓存,这些值必须通过 forget 方法手动从缓存中移除:

Cache::forever('key', 'value');
登录后复制

四、从缓存中移除数据

可以使用 Cache 门面上的 forget 方法从缓存中移除缓存项数据:

Cache::forget('key');
登录后复制

还可以通过设置缓存有效期为 0 或负数来移除缓存项:

Cache::put('key', 'value', 0);
 
Cache::put('key', 'value', -5);
登录后复制

如果要清除所有缓存,可以通过 flush 方法:

Cache::flush();
登录后复制

以上基本上就是laravel框架对文件缓存的操作方法

【相关推荐:laravel视频教程

以上就是PHP laravel缓存cache机制详解的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:脚本之家网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号