缓存
配置
.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');