加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Laravel中的缓存机制为企业提供了什么样的缓存方式?

发布时间:2023-07-05 14:58:59 所属栏目:PHP教程 来源:
导读:这篇主要是介绍“Laravel的cache提供了哪些缓存机制”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决Laravel的cache提供了哪些缓
这篇主要是介绍“Laravel的cache提供了哪些缓存机制”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决Laravel的cache提供了哪些缓存机制的问题,下面我们一起来了解看看吧。
 
Laravel中的cache为我们提供了三种缓存机制。
 
Redis,memcache,以及框架的文件缓存。
 
这里主要看的是cache中的文件缓存。
 
一、访问多个缓存存储
 
使用 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 方法的闭包被执行并且将结果存放到缓存中。
 
你还可以使用 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框架对文件缓存的操作方法
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!