PHPlaravel缓存cache机制详解_第1页
PHPlaravel缓存cache机制详解_第2页
PHPlaravel缓存cache机制详解_第3页
PHPlaravel缓存cache机制详解_第4页
PHPlaravel缓存cache机制详解_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第PHPlaravel缓存cache机制详解目录一、访问多个缓存存储二、从缓存中获取数据1.获取数据并设置默认值2.检查缓存项是否存在3.数值增加/减少4.获取存储5.获取删除三、缓存中存储数据1.获取存储数据2.缓存不存在时存储数据3.永久存储数据四、从缓存中移除数据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(){

returnDB::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(){

returnDB::table('users')-get();

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

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

$value=Cache::rememberForever('users',function(){

returnDB::table('users')-get();

});

5.获取删除

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

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

三、缓存中存储数据

1.获取存储数据

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

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

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

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

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

$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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论