缓存
配置
在 .env 文件中, 有个 CACHE_DRIVER 的选项, 用来配置使用哪个类型的缓存, Lumen 支持以下的几种:
arrayfilememcachedredisdatabase
Note: 如果你需要使用
.env来管理你的配置信息的话, 请在bootstrap/app.php文件里面把这一行去掉注释Dotenv::load().
Memcached
如果你想使用 Memcached 缓存的话, 请在 .env 文件里面设置这两个选项 MEMCACHED_HOST 和 MEMCACHED_PORT .
Redis
如果你想使用 Redis 缓存的话, 你需要通过 composer 安装 predis/predis package (~1.0) 扩展包.
Database
如果你打算用数据库作为缓存的话, 你需要配置好数据库表后才能使用, 下面是表结构:
Schema::create('cache', function($table) {$table->string('key')->unique();$table->text('value');$table->integer('expiration');});
基础使用
Note: 如果你想使用
Cache的话, 请在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 会返回是否加入 Cache 的反馈, 如果增加成功的话, 会返回 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');
