缓存使用

目录

存储项目

存储在缓存中的项目也很简单. 简单地调用Cache类的put的方法:

Cache::put('name', 'Taylor', 10);

第一个参数是缓存项的键(key). 你会使用这个键值从缓存中检索项目. 第二个参数是缓存项的值(value). 第三个参数是分钟(minutes),指明缓存的项目的保存时间.

如果你不希望缓存过期, 您也可以缓存数据项到"永远":

Cache::forever('name', 'Taylor');

提示: 存储缓存时没有必要序列化这些对象.

检索项目

从缓存中检索项目要比存储它们简单的多. 它是通过使用get方法实现的. 只要传入键就好:

$name = Cache::get('name');

默认情况下, 如果缓存项目已过期或不存在将返回null值. 但是, 您可以通过传入第二个参数作为默认返回值:

$name = Cache::get('name', 'Fred');

现在, 如果"name"的缓存项已过期或不存在"Fred"将返回.

如果不存在一个缓存项时你需要从数据库中取值呢? 解决方法很简单. 您可以通过传入闭包函数返回默认的值.

$users = Cache::get('count', function() {return DB::table('users')->count();});

让我们更进一步看下例子. 假设您要为您的应用程序中检索的注册用户数; 然而,如果值没被缓存,你又想在缓存中存储这个值, 使用remember方法:

$users = Cache::remember('count', function() {return DB::table('users')->count();}, 5);

让我们来谈谈通过这个例子. 如果count项目存在于缓存中, 它将会被退回. 如果它不存在的, 闭包函数运行的结果将返回并在缓存中存储五分钟. 厉害吧?

laravel甚至给你一个简单的方法, 以确定是否存在一个缓存项, 请使用has方法:

if (Cache::has('name'))
{
     $name = Cache::get('name');
}

删除项目

需要清除缓存项吗?没问题. 向forget方法传入缓存名称就好:

Cache::forget('name');