laravel为不同的缓存系统提供了统一的API 缓存配置,位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。laravel目前支持主流的缓存后端如Memcached和Redis等。
主要方法:
Cache::put()
Cache::get()
Cache::add()
Cacahe::pull()
Cache::forever()
Cache::forget()
Cache::has()
系统默认是使用文件缓存,其缓存文件存储的位置位于(storage/framework/data),
案例:
1、编写路由
Route::get('home/test/test28','TestController@test28');
2、编写控制器方法
public function test28(){
//设置一个缓存,如果存在同名则覆盖
Cache::put('class','qz04',10);
Cache::put('class','qz05',10);
//设置一个缓存,但是存在同名不添加
Cache::add('addr','1111',10);
//永久存储
Cache::forever('username','madogmei');
//获取指定的值
echo Cache::get('username','madogmei');
//获取指定的值,如果不存在使用默认值替换
echo Cache::get('sign','这个家伙很懒,什么都没留下');
//通过回调函数的方式返回默认值
echo Cache::get('time',function(){
return date('Y-m-d H:i:s',time());
});
//判断某个值是否存在
var_dump(Cache::has('time'));
//使用pull方法实心一次性存储
var_dump(Cache::pull('username'));
//直接删除某一个值
Cache::forget('addr');
//删除全部的缓存文件
Cache::flush();
}
1.设置缓存
语法:Cache::put('key','value',$minutes);
注意:如果该键已经存在,则直接覆盖原来的值,有效期必须设置,单位是分钟
语法:Cache::add('key','value',$minutes);
add方法只会在缓存项不存在的情况下添加数据到缓存,如果数据被成功添加到缓存返回true,否则返回false
永久存储数据
forever方法用于持久化存储数据到缓存,这些必须通过forget方法手动从缓存中移除,永久存储并不是真的永久,只不过期截止的时间是比较大的值
Cache::forever(‘key’,‘value’)
缓存机制练习
1.创建路由
2.创建缓存的方法
如果需要Cache提供的方法,则需要先引入
2.获取缓存
Cache门面的get方法用于从缓存中获取缓存项,如果缓存想不存在,返回null。如果需要的话可以传递第二个参数到get方法指定缓存项不存在时返回自定义默认值
$value=Cache::get(‘key’); 获取指定的key值
$value=Cache::get(‘key’,‘default’); 获取指定的key值,如果不存在,则使用默认值
可以传递一个匿名函数作为默认值,如果缓存项不存在的话闭包的结果将会被返回。传递匿名函数允许你可以从数据库或其他外部服务器获取默认值
$value=Cache::get(‘key’,function(){
return DB::table(…)->get()
})
检查缓存项是否存在
has方法用于判断缓存项是否存在
if(Cache::has(‘key’)){
//
}
3.删除缓存数据
语法:
$value=Cache::pull(‘key’);从缓存中获取缓存项然后删除,如果缓存项不存在的话返回null
一般设置一次性的存储的数据
Cache::forget(‘key’)使用forget方法从缓存项中移除缓存项数据
Cache::flush使用flush方法清除所有缓存,并且删除对应的目录
4.缓存数值增加/减少
increment和decrement 方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的数目:般会 用作计数器。
Cache:increment("key’);