Lumen 进阶之缓存的使用

Lumen版本:5.3 ,更多Lumen笔记:Lumen学习笔记

Lumen 介绍缓存的资料极少,看看 Laravel

配置

首先,修改.env文件配置缓存的驱动方式

// 缓存驱动方式:apc, array, database, file, memcached, redis
CACHE_DRIVER=memcached
  • apc:APC驱动,APC是PHP的一个扩展,其目标是为缓存和优化PHP中间码(opcode)提供一个免费、开源、健壮的框架

  • array:数组驱动,往往仅仅用于测试,好处是不会持久化,只会在一次PHP脚本执行的生命周期内有效

  • database:数据库驱动,需参考下面代码在数据库中建立缓存表,并设置CACHE_DATABASE_TABLECACHE_DATABASE_CONNECTION

      Schema::create('cache', function($table) {
          $table->string('key')->unique();
          $table->text('value');
          $table->integer('expiration');
      });
    
  • file:文件驱动,系统将生成缓存文件储存在/storage/framework/cache文件夹里,所以,777权限是必须的

  • memcached:Memcached驱动,使用之前需要先在系统中安装Memcached,并设置MEMCACHED_HOSTMEMCACHED_PORT

  • redis:Redis驱动,使用之前需要先在系统中安装Redis,并设置CACHE_REDIS_CONNECTION

众多驱动方式中,array不是持久缓存,database需要读取数据库,file需要读取文件,apc/memcached/redis是基于内存的,所以。。。选择适合自己的

使用

缓存需要Facade的支持,否则会提示Class 'Cache' not found错误,所以,请检查/bootstrap/app.php,确认$app->withFacades();的注释已去掉

无论选用任何驱动方式,缓存的使用方式是统一的,请看以下代码:

use Cache;
...
$id = 5;
// 读取缓存
$result = Cache::get('UserData_'.$id);
if($result){
    return $result;
}
$result = User::findOrFail($id);
// 添加缓存,时间60分钟
Cache::put('UserData_'.$id, $result, 60);
若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏