配置 .env 文件中的 CACHE_DRIVER 配置项用于确定当前应用程序中使用哪个缓存 “driver(驱动)”。当然,Lumen 支持 Laravel 所支持的所有驱动,包括 Memcached 和 Redis: ``` array file memcached redis database ``` 注意: 如果你使用 .env 文件用来配置你的应用程序,不要忘记在 bootstrap/app.php 文件中将 Dotenv::load() 方法前面的注释去掉。 Memcached 如果你使用的是 Memcached 驱动,需要在 .env 配置文件中设置 MEMCACHED_HOST 和 MEMCACHED_PORT 配置项。 Redis 在 Lumen 中使用 Redis 缓存前,需要先通过 Composer 安装 predis/predis 包 (~1.0)。 数据库 使用数据库缓存驱动前,需要设置用于保存缓存数据的数据表。下面是数据表的实例: ``` Schema::create('cache', function($table) { $table->string('key')->unique(); $table->text('value'); $table->integer('expiration'); }); ``` 基本用法 注意 如果你打算使用 Cache facade,请务必将 bootstrap/app.php 文件中 $app->withFacades() 前面的注释去掉。 保存数据到缓存中 ``` Cache::put('key', 'value', $minutes); ``` 使用 Carbon 对象设置缓存过期时间 ``` $expiresAt = Carbon::now()->addMinutes(10); Cache::put('key', 'value', $expiresAt); ``` 如果数据不存在则将其存入缓存中 ``` Cache::add('key', 'value', $minutes); ``` 如果数据确实被 添加 到缓存中了,add 方法将返回 true,否则返回 false。 检查缓存中是否有某条数据 ``` if (Cache::has('key')) { // } ``` 从缓存中取出一条数据 ``` $value = Cache::get('key'); ``` 取出一条数据或返回默认值 ``` $value = Cache::get('key', 'default'); $value = Cache::get('key', function() { return 'default'; }); ``` 将一条数据永久保存到缓存中 ``` Cache::forever('key', 'value'); ``` 有时你可能希望从缓存中取出一条数据,但是如果这条数据不存在的话就保存一个默认值。请使用 Cache::remember 方法: ``` $value = Cache::remember('users', $minutes, function() { return DB::table('users')->get(); }); ``` 还可以联合使用 remember 和 forever 方法: ``` $value = Cache::rememberForever('users', function() { return DB::table('users')->get(); }); ``` 注意,所有存放到缓存中的数据都是被序列化过的,因此,你可以放心的存储任何类型的数据。 从缓存中取出一条数据并将其删除 如果你需要从缓存中取出一条数据然后将其删除掉,请使用 pull 方法: ``` $value = Cache::pull('key'); ``` 从缓存中删除一条数据 ``` Cache::forget('key'); ```