一.默认缓存的配置
缓存配置位于config/cache.php,你可以使用memcache,redis,数据库缓存,文件缓存等.默认是文件缓存 二.缓存获取 1.获取
$value = Cache::get('key');
// 默认值
$value = Cache::get('key','default');
// 访问多个缓存存储
$value = Cache::store('file')->get('foo');
Cache::store('redis')->put('bar', 'baz', 10); // 传递一个闭包,如果数据不存在
$user = Cache::get('user1', function() {
return User::where('id', 1)->select('name')->first()->name;
}); 2.检查缓存是否存在
if (Cache::has('key')) {
//
} 三.缓存写/更新 1.写/更新
a.put,无论缓存是否存在,均写入或者更新
Cache::put('key', 'value', $minutes);//第三个参数为缓存多少分钟
除了传递缓存项失效时间,你还可以传递一个代表缓存项有效时间的PHP Datetime 实例:
$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt); b.add 方法只会在缓存项不存在的情况下添加缓存项到缓存,如果缓存项被添加到缓存返回true ,否则,返回
false :
Cache::add('key', 'value', $minutes); 2.forever 方法用于持久化存储缓存项到缓存,即没有过期时间,这些值必须通过forget 方法手动从缓存中移除:
Cache::forever('key', 'value'); 3.增加减少缓存的值
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount); 4.获取或更新
$value = Cache::remember('users', $minutes, function() {
return DB::table('users')->get();
}); 如果缓存项不存在,传递给remember 方法的闭包被执行并且将结果存放到缓存中。 你还可以联合remember 和forever 方法:
$value = Cache::rememberForever('users', function() {
return DB::table('users')->get();}); 5.获取缓存后删除
$value = Cache::pull('key'); 四.删除 1.删除单个
Cache::forget('key'); 2.清空全部
Cache::flush(); 五.缓存标签
缓存标签不支持file或database缓存驱动.memcache等内存缓存通常比较适合做缓存,因为它们有有过期时间,可以被自动过期删除. 1.存储
缓存标签允许你给相关的缓存项打上同一个标签,然后可以输出被分配同一个标签的所有缓存值。你可以通过传递一个有序的标签名数组来访问被打上标签的缓存。例如,让我们访问一个被打上标签的缓存并将其值放到缓存中:
Cache::tags(['people', 'artists'])->put('John', $john, $minutes);
Cache::tags(['people', 'authors'])->put('Anne', $anne, $minutes); 2.获取
$john = Cache::tags(['people', 'artists'])->get('John');
$anne = Cache::tags(['people', 'authors'])->get('Anne'); 3.移除
Cache::tags(['people', 'authors'])->flush();//移除被打上people,authors标签的缓存,或者,Anne 和 John都会从缓存中移除:
Cache::tags('authors')->flush(); //移除被打上 authors标签的缓存,所以Anne会被移除,而John不会: 六.缓存事件
要在每次缓存操作时执行相应程序,你可以监听缓存触发的事件,通常,你可以将这些缓存处理器代码放到EventServiceProvider的boot方法中: /**
* 注册应用任意其他事件
*
* @param \Illuminate\Contracts\Events\Dispatcher $events
* @return void
*/
public function boot(DispatcherContract $events){
parent::boot($events); $events->listen('cache.hit', function ($key, $value) {
//
}); $events->listen('cache.missed', function ($key) {
//
}); $events->listen('cache.write', function ($key, $value, $minutes) {
//
}); $events->listen('cache.delete', function ($key) {
//
});
}
  

  

最新文章

  1. HttpGet 请求(带参数)
  2. 移动APP的开发需求分析
  3. JS-字符串操作-替换
  4. OpenGL基础知识
  5. 关于php的两个符号@和$
  6. Unity5UGUI 官方教程学习笔记(四)UI Image
  7. SQL Server:错误处理及事务控制
  8. git 查看当前与上一次version的差异
  9. apidoc快速生成在线文档,apidoc生成静态文件的生成规则以及原理分析
  10. JS声明变量的写法
  11. ubuntu14.4 分辨率偏低
  12. Flask自带的常用组件介绍
  13. PythonStudy——数据类型转化 Data type conversion
  14. Linux下启动停止查看杀死Tomcat进程
  15. Java——多线程面试问题
  16. statik golang 静态资源嵌入二进制文件工具使用(docker 构建)
  17. mysql 执行 sql 语句提示Parameter '@XXX' must be defined
  18. mysql 数据操作 多表查询 子查询 带比较运算符的子查询
  19. Linux启动流程(CentOS6)
  20. UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出

热门文章

  1. 关于each()、find()、filter()遍历节点的操作方法
  2. SPI总线介绍
  3. glxgears刷新只有60FPS解决办法
  4. Java反射常用API汇总
  5. poj 1106(半圆围绕圆心旋转能够覆盖平面内最多的点)
  6. Android 利用 AsyncTask 异步读取网络图片
  7. 推荐一本迷你中文书《JavaScript Promise迷你书(中文版)》
  8. [BZOJ1834][ZJOI2010]network 网络扩容 最大流+费用流
  9. ASP.NET增加微信公众号功能
  10. MVC5 ModelState