Laravel的cache提供了哪些缓存机制
Admin 2022-11-29 群英技术资讯 340 次浏览
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() {
return DB::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() {
return DB::table('users')->get();
});
登录后复制
如果缓存项不存在,传递给 remember 方法的闭包被执行并且将结果存放到缓存中。
你还可以使用 rememberForever 方法从缓存中获取数据或者将其永久存储起来:
$value = Cache::rememberForever('users', function() {
return DB::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();
登录后复制
以上基本上就是laravel框架对文件缓存的操作方法
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在本篇文章里小编给大家整理的是一篇关于PHP中最低级别的错误类型总结内容,对此有兴趣的朋友们可以跟着学习下。
swoole是一个面向生产环境的PHP异步网络通信引擎,socket是一个抽象层。socket是系统提供的对tcp/ip操作的接口,swoole这是对socket在进行一个封装并提供php操作接口的PHP扩展。
想要用PHP for循环求出某个数的阶乘,我们首先需要知道什么是数的阶乘?数的阶乘就是所有整数的乘积,包括该数,比如4的阶乘就是4 * 3 * 2 * 1 = 24,5的阶乘就是5*4 * 3 * 2 * 1 = 120。
本篇文章介绍了phpstorm上搭建thinkphp开发环境的方法,具有一定的参考价值,希望对刚入门的朋友有些帮助。1、安装和下载,下载thinkPHP,安装phpstorm;2、环境的搭建和配置。
php的自动垃圾回收机制是怎样的呢?这个问题我们先这么想,我们都知道php是C语言实现的。你想想如何用C语言实现对一个变量的统计以及释放。C语言是如何实现一个变量,从声明开始到最后没人用了,就把这个变量所占的内存给释放掉(被垃圾回收)。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008