缓存
配置
.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');
});
基本用法
注意 如果你打算使用
Cachefacade,请务必将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');