通过ecjia_cache函数获取缓存实例
ecjia_cache($app, $driver = null);
调用缓存方法
get 方法可以用来取出缓存中的项目,缓存不存在的话返回 null,get 方法接受第二个参数,作为找不到项目时返回的预设值:
$value = ecjia_cache('touch')->get('key');
$value = ecjia_cache('touch')->get('key', 'default');
你甚至可以传入一个闭包作为默认值,当指定的项目不存在缓存中时,闭包将会被返回,传入一个闭包允许你延迟从数据库或外部服务中取出值:
$value = ecjia_cache('touch')->get('key', function() {
return RC_DB::table(...)->get();
});
确认项目是否存在
has 方法可以用来检查一个项目是否存在于缓存中:
if (ecjia_cache('touch')->has('key')) {
//
}
递增与递减值
increment 和 decrement 方法可以用来调整缓存中的整数项目值,这两个方法都可以选择性的传入第二个参数,用来指示要递增或递减多少:
ecjia_cache('touch')->increment('key');
ecjia_cache('touch')->increment('key', $amount);
ecjia_cache('touch')->decrement('key');
ecjia_cache('touch')->decrement('key', $amount);
取出与删除
如果你需要从缓存中取出一个项目并删除它,你可能会使用 pull 方法,与 get 相似,如果对象不存在缓存中,pull 方法将会返回 null:
$value = ecjia_cache('touch')->pull('key');
存放项目到缓存中
你可以使用 Cache facade 的 put 方法来存放项目到缓存中,你需要使用第三个参数来设定缓存的存放时间:
ecjia_cache('touch')->put('key', 'value', $minutes);
forever 方法可以用来存放永久的项目到缓存中,这些值必须被手动的删除,这可以通过 forget 方法实现:
ecjia_cache('touch')->forever('key', 'value');
删除缓存中的项目
你可以使用 forget 方法从缓存中移除一个项目:
ecjia_cache('touch')->forget('key');
也使用 flush 方法清空所有缓存:
ecjia_cache('touch')->flush();
清空缓存 并不会 遵从缓存的前缀,并会将缓存中所有的项目删除。在清除与其它应用程序共用的缓存时应谨慎考虑这一点。
网友评论