PHP laravel缓存cache机制怎么实现


今天小编给大家分享一下PHPlaravel缓存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):正常取值

$value=Cache::get('key');

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

$value=Cache::get('key','default');

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

$value=Cache::get('key',function(){
returnDB::table(...)->get();
});

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

if(Cache::has('key')){
//
}

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

Cache::increment('key');
Cache::increment('key',$amount);
Cache::decrement('key');
Cache::decrement('key',$amount);

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

$value=Cache::remember('users',$seconds,function(){
returnDB::table('users')->get();
});

如果缓存项不存在,传递给 remember 方法的闭包被执行并且将结果存放到缓存中。你还可以使用 rememberForever 方法从缓存中获取数据或者将其永久存储起来:

$value=Cache::rememberForever('users',function(){
returnDB::table('users')->get();
});

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

$value=Cache::pull('key');

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

Cache::put('key','value',$seconds);

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

Cache::put('key','value');

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

$expiresAt=Carbon::now()->addMinutes(10);
Cache::put('key','value',$expiresAt);

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

Cache::add('key','value',$seconds);

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();

以上就是“PHPlaravel缓存cache机制怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。

相关推荐: vue赋值数组的方法是什么

本文小编为大家详细介绍“vue赋值数组的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue赋值数组的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.使用reactive方法赋值#定义数组const ary …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/18 11:29
下一篇 02/18 11:29

相关推荐