您的位置: 翼速应用 > 业内知识 > PHP框架 > 正文

聊聊laravel缓存cache机制

这篇文章和大家一起聊聊laravel缓存cache机制的相关内容,旨在帮助大家掌握更多laravel的知识,cache为我们提供了三种缓存机制:Redis,memcache,以及框架文件缓存的相关内容,详细内容如下。


聊聊laravel缓存cache机制


聊聊laravel缓存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框架对文件缓存的操作方法,laravel缓存cache机制的讲解就到这里了,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题