黑马lavarel教程---9、缓存操作

一、总结

一句话总结:

legend2项目中自己写的哪些文件操作都可以通过这里的缓存实现,简单方便

1、lavarel中如何使用后端主流的缓存如 Memcached 和 Redis 等?

在配置文件 config/cache.php中指定缓存驱动即可

2、系统默认是使用文件缓存,其缓存文件存储的位置位于哪里?

storage/framework/cache/data

3、如何用缓存做计数器?

increment 和 decrement 方法
increment 和 decrement 方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的数目:一般会用作计数器。
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);

4、缓存经常使用的方法有哪些?

add/put、get、has、forget、flush、remember

5、lavarel缓存使用基本操作?

引入Cache:use Cache;
put存:Cache::put($u_id,$question_list_box,60*24);
get取:$question_list_box=Cache::get($u_id);

6、删除缓存文件的方法是什么(也就是删了之后那些文件也会跟着被删了)?

$value = Cache::pull('key'); 从缓存中获取缓存项然后删除,如果缓存项不存在的话返回null,一般设置一次性的存储的数据
Cache::forget('key'); 使用forget 方法从缓存中移除缓存项数据
Cache::flush();使用 flush 方法清除所有缓存:并且删除对应的目录

二、缓存操作

Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 目前支持主流的缓存后端如 Memcached 和 Redis 等。

主要方法:

Cache::put() 

Cache::get() 

Cache::add()

Cache::pull()

Cache::forever()

Cache::forget()

Cache::has()

系统默认是使用文件缓存,其缓存文件存储的位置位于(storage/framework/cache/data):

1、设置缓存

语法:Cache::put('key', 'value', $minutes);

注意:如果该键已经存在,则直接覆盖原来的值,有效期必须设置,单位是分钟

语法:Cache::add('key', 'value', $minutes);

add 方法只会在缓存项不存在的情况下添加数据到缓存,如果数据被成功添加到缓存返回 true,否则,返回false:

永久存储数据

forever 方法用于持久化存储数据到缓存,这些值必须通过 forget 方法手动从缓存中移除:

Cache::forever('key', 'value');                  永久存储并不是真的永久,只不过其截至的时间是比较大的值(到2286年)

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');

Cache::increment('key', $amount);

Cache::decrement('key');

Cache::decrement('key', $amount);

5、获取并存储

有时候你可能想要获取缓存项,但如果请求的缓存项不存在时给它存储一个默认值。例如,你可能想要从缓存中获取所有用户,或者如果它们不存在的话,从数据库获取它们并将其添加到缓存中,你可以通过使用 Cache::remember 方法实现:

$value = Cache::remember('users', $minutes, function() {

return DB::table('users')->get();

});

如果缓存项不存在,传递给 remember 方法的闭包被执行并且将结果存放到缓存中。

如果获取users值是不存在,则可以通过后续的回调代码去执行对应的操作获取其值,并返回,同时会设置一个指定有效期的缓存,方便下次直接使用。比较典型的操作就是在获取微信的accesstoken的时候可以使用。原因是accesstoken本身一天只有2000次的配额,而其有7200s的有效期,在有效期内可以不用去刷新请求。

还可以联合 remember 和 forever 方法:

$value = Cache::rememberForever('users', function() {

return DB::table('users')->get();

});

①创建需要的路由

②创建test19方法实现相关代码操作

如果需要使用cache提供的方法,则需要先引入

经常使用的:add/put、get、has、forget、flush、remember

 

黑马lavarel教程---9、缓存操作的更多相关文章

  1. 黑马lavarel教程---5、模型操作(AR模式)

    黑马lavarel教程---5.模型操作(AR模式) 一.总结 一句话总结: AR: ActiveRecord :Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型 ...

  2. 黑马lavarel教程---13、分页

    黑马lavarel教程---13.分页 一.总结 一句话总结: - lavarel里面的分页操作和tp里面的分页操作几乎是一模一样的 - 控制器:$data=Lesson::paginate(2); ...

  3. 黑马lavarel教程---12、lavarel验证码

    黑马lavarel教程---12.lavarel验证码 一.总结 一句话总结: 用插件的时候仔细看插件的版本要求 1.lavarel安装验证码插件的时候,如果(可选)需要定义自己的配置,则需要生成配置 ...

  4. 黑马lavarel教程---11、响应处理

    黑马lavarel教程---11.响应处理 一.总结 一句话总结: 如果在昂扬状态,看学习视频和运动时间重合,会很舒服 1.jquery的$.post参数为什么不需要占位? 因为每个参数的类型不同,可 ...

  5. 黑马lavarel教程---10、lavarel模型关联

    黑马lavarel教程---10.lavarel模型关联 一.总结 一句话总结: 1.模型关联比较方便,一次定义,后面都可以使用 2.关联关系 使用动态属性进行调用 1.一对多,多对多实例? 一对多: ...

  6. 黑马lavarel教程---7、文件上传

    黑马lavarel教程---7.文件上传 一.总结 一句话总结: 在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的. 1.在lavar ...

  7. 黑马lavarel教程---6、简单验证

    黑马lavarel教程---6.简单验证 一.总结 一句话总结: 1.验证的最简单实例:$request的validate方法,验证通过可以继续进行,验证失败就重定向 2.中文提示可以用中文语言包 3 ...

  8. 黑马lavarel教程---4、csrf验证及相关

    黑马lavarel教程---4.csrf验证及相关 一.总结 一句话总结: csrf验证就像短信验证码那样验证用户身份,这个验证是为了验证是本站的操作,用的是一个token字符串,外站如果有了这个to ...

  9. 黑马lavarel教程---3、数据库和视图注意点

    黑马lavarel教程---3.数据库和视图注意点 一.总结 一句话总结: 使用其实都很简单,MVC的框架都很像,用的时候直接可以去看手册,这样才能记得住 1.数据库删除操作注意? 删非删:很多网站的 ...

随机推荐

  1. 解决微信小程序Date.parse()获取时间戳IOS显示为NaN

    ios系统不支持2018-03-29这样格式的时间导致出现的这个问题, IOS只识别2018/03/09这样的格式. 上正则 //之前的var data = '2018-03-09 12:00:00' ...

  2. DS1302时钟

    采用串行数据传送方式,SPI 3线接口 SPI总线 SPI接口是以主从方式工作的,通常有一个主器件和一个或多个从器件 MOSI – 主器件数据输出,从器件数据输入 MISO – 主器件数据输入,从器件 ...

  3. VScode 配置为 LaTeX 编辑器(IDE)

    VScode 配置为 LaTeX IDE 在Windows中,配置VScode作为LaTeX的编辑器(IDE),并使用SumatraPDF预览PDF文件.主要是LaTeX Workshop扩展的设置, ...

  4. VC文件扩展名

    .APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度. .BMP:位图资源文件. .BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE ...

  5. 命令行工具--netstat

    目录 netstat命令使用 一.简介 二.安装 三.常见参数 四.使用案例 1.列出所有端口(包括监听和为监听的) 2.列出所有 tcp 端口 3.列出所有 udp 端口 4.列出正在监听的端口 5 ...

  6. SURF算法源代码OPENSURF分析

    SURF算法源代码分析 平台:win x64 + VS2015专业版 +opencv2.4.11 配置类似参考OPENSIFT,参考我的另一篇博客:https://www.cnblogs.com/Al ...

  7. Mysql(九):Python连接MySQL数据库之pymysql模块使用

    Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...

  8. Hadoop_17_MapRduce_案例2_实现用户手机流量统计(ReduceTask并行度控制)

    需求:1.统计每一个用户(手机号)所耗费的总上行流量.下行流量,总流量 1.数据如下:保存为.dat文件(因为以\t切分数据,文件格式必须合适) 1363157985066 13726230503 0 ...

  9. 说一下 HashSet 的实现原理?(未完成)

    说一下 HashSet 的实现原理?(未完成)

  10. springMVC的简单了解和环境搭建

    一,什么mvc 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计思想.它主要通过 分离模型.视图及控制器在应用程序中的角色 将业务逻辑从界面中解耦.通常, 模型负责封装应用程 ...