Blogger Information
Blog 128
fans 9
comment 5
visits 241063
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
21.)PHPWeb开发框架~laravel中缓存系统Cache的使用及配置操作
 一纸荒凉* Armani
Original
2427 people have browsed it

缓存系统

Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 目前支持主流的缓存后端如Memcached 和 Redis 等。

主要方法:

  • Cache::put() 在缓存中存储数据
  • Cache::add() 只存储没有的数据
  • Cache::get() 从缓存中获取数据
  • Cache::forever() 数据永久存储
  • Cache::pull() 获取和删除
  • Cache::remember() 获取和存储
  • Cache::increment() 递增与递减值
  • Cache::forget() 从缓存中删除数据
  • Cache::has() 检查缓存项是否存在

系统默认是使用文件缓存,其缓存文件存储的位置位于(storage/framework/cache/data):

img

1、设置缓存数据

  1. 语法:Cache::put('key', 'value', $minutes);

注意:put如果该键已经存在,则直接覆盖原来的值,有效期必须设置,单位是分钟

  1. 语法:Cache::add('key', 'value', $minutes);

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

注意:如果缓存的过期时间没有传递给 put 方法, 则缓存将永久有效

  1. 语法:Cache::forever('key', 'value');

forever 方法可用于持久化将数据存储到缓存中。因为这些数据不会过期,所以必须通过 forget 方法从缓存中手动删除它们

2、获取缓存数据

Cache Facade 的 get 方法用于从缓存中获取数据。如果该数据在缓存中不存在,那么该方法将返回 null 。。如果需要的话你可以传递第二个参数到 get 方法指定缓存项不存在时返回的自定义默认值:

  1. // 获取指定的key值
  2. $value = Cache::get('key');
  3. // 获取指定的key值,如果不存在,则使用默认值
  4. $value = Cache::get('key', 'default');

你甚至可以传递一个 Closure 作为默认值。如果指定的数据在缓存中不存在,将返回 Closure 的结果。传递闭包的方法允许你从数据库或其他外部服务中获取默认值

  1. $value = Cache::get('key', function () {
  2. return DB::table(...)->get();
  3. });

检查缓存项是否存在

has 方法可以用于判断缓存项是否存在。如果值为 null,则该方法将会返回 false

  1. if (Cache::has('key')) {
  2. //
  3. }

3、删除缓存数据

你可以使用 forget 方法从缓存中删除这些数据:

  1. Cache::forget('key');

你也可以通过提供零或者负的 TTL 值来删除这些数据:

  1. Cache::put('key', 'value', 0);
  2. Cache::put('key', 'value', -5);

你可以使用 flush 方法清空所有的缓存:并且删除对应的目录

  1. Cache::flush();

注意:清空缓存的方法并不会考虑缓存前缀,会将缓存中的所有内容删除。因此在清除与其它应用程序共享的缓存时,请慎重考虑。

如果你需要从缓存中获取到数据之后再删除它,你可以使用 pull 方法。和 get方法一样,如果缓存不存在,则返回 null一般设置一次性的存储的数据

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

4、缓存递增与递减值

incrementdecrement 方法可以用来调整缓存中整数项的值。这两个方法都可以传入第二个可选参数,这个参数用来指明要递增或递减的数量:一般会用作计数器

  1. // 递增
  2. Cache::increment('key');
  3. Cache::increment('key', $amount);
  4. // 递减
  5. Cache::decrement('key');
  6. Cache::decrement('key', $amount);

5、获取并存储

有时你可能想从缓存中获取一个数据,而当请求的缓存项不存在时,程序能为你存储一个默认值。例如,你可能想从缓存中获取所有用户,当缓存中不存在这些用户时,程序将从数据库将这些用户取出并放入缓存。你可以使用 Cache::remember 方法来实现:

  1. $value = Cache::remember('users', seconds,, function () {
  2. return DB::table('users')->get();
  3. });

如果缓存中不存在你想要的数据时,则传递给 remember 方法的 闭包 将被执行,然后将其结果返回并放置到缓存中。同时会设置一个指定有效期的缓存,方便下次直接使用。比较典型的操作就是在获取微信的accesstoken的时候可以使用。原因是accesstoken本身一天只有2000次的配额,而其有7200s的有效期,在有效期内可以不用去刷新请求。

还可以联合 remember 和 forever 方法,可以使用 rememberForever 方法从缓存中获取数据或者永久存储它:

  1. $value = Cache::rememberForever('users', function () {
  2. return DB::table('users')->get();
  3. });

①创建需要的路由

img

②创建test19方法实现相关代码操作

如果需要使用cache提供的方法,则需要先引入

img

img

img

img

经常使用的:add/put、get、has、forget、flush、remember

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post