laravel提供五个缓存的驱动模式:
•文件系统
•数据库
•Memcached
•APC
•Redis
•内存 (Arrays)
默认情况下, Laravel被配置为使用文件系统缓存驱动, 这是不需要配置的. 文件系统驱动把缓存项作为文件存储在storage/cache目录.如果你满意这个驱动, 没有其他的配置是必需的. 直接使用它就好:
提示: 使用文件系统缓存驱动程序之前, 要确保你的storage/cache目录是可写的.
在Laravel中使用缓存,可以使用Cache这个Facade,很方便而且可以很优雅的使用缓存,常见的使用缓存的方式是这样的:
$value = cache->get('key');
if($value === false){
$value = DB->where('xx')->get();
$value = cache->set('key', $value);
cache->expire('key', 1800);
}
这个逻辑在Laravel中使用remember方法和闭包函数,可以非常优雅方便的表达,三行代码实现上面的过程。
如下:
use App\Http\Requests;
use App\Models\Wp;
use Illuminate\Support\Facades\Cache;
class BlogController extends Controller
{
private $indexPostsKey = 'com.tanteng.me.index.blog.posts';
public function index()
{
$newPosts = Cache::store('redis')->remember($this->indexPostsKey, 30, function () {
return Wp::type('post')->status('publish')->orderBy('post_date', 'desc')->take(16)->get();
});
return View('index/blog', compact('newPosts'));
}
}
这只是Laravel中一个使用缓存方式的简单例子,这也是本站Blog页面列表的获取方式,首先找缓存,没有在闭包中查询数据库返回,并缓存30分钟,Cache::store(‘file’)可以方便使用不同的缓存方式。