PHP Laravel 缓存机制如何实现高效数据存储与快速访问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1126个文字,预计阅读时间需要5分钟。
目录
一、访问多个缓存存储
二、从缓存中获取数据
1. 获取数据并设置默认值 2. 检查缓存项是否存在 3. 数值增加/减少 4. 获取存储 5. 获取存储 6. 删除存储三、存储中的数据
1. 获取存储数据 2. 缓存“目录
- 一、访问多个缓存存储
- 二、从缓存中获取数据
- 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() { 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');
除了传递缓存项失效时间,你还可以传递一个代表缓存项有效时间的 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', 0); Cache::put('key', 'value', -5);
如果要清除所有缓存,可以通过flush方法:
Cache::flush();
以上基本上就是laravel框架对文件缓存的操作方法
到此这篇关于PHP laravel缓存cache机制详解的文章就介绍到这了,更多相关PHP laravel缓存内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计1126个文字,预计阅读时间需要5分钟。
目录
一、访问多个缓存存储
二、从缓存中获取数据
1. 获取数据并设置默认值 2. 检查缓存项是否存在 3. 数值增加/减少 4. 获取存储 5. 获取存储 6. 删除存储三、存储中的数据
1. 获取存储数据 2. 缓存“目录
- 一、访问多个缓存存储
- 二、从缓存中获取数据
- 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() { 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');
除了传递缓存项失效时间,你还可以传递一个代表缓存项有效时间的 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', 0); Cache::put('key', 'value', -5);
如果要清除所有缓存,可以通过flush方法:
Cache::flush();
以上基本上就是laravel框架对文件缓存的操作方法
到此这篇关于PHP laravel缓存cache机制详解的文章就介绍到这了,更多相关PHP laravel缓存内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

