黑马lavarel教程---9、缓存操作
黑马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、缓存操作的更多相关文章
- 黑马lavarel教程---5、模型操作(AR模式)
黑马lavarel教程---5.模型操作(AR模式) 一.总结 一句话总结: AR: ActiveRecord :Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型 ...
- 黑马lavarel教程---13、分页
黑马lavarel教程---13.分页 一.总结 一句话总结: - lavarel里面的分页操作和tp里面的分页操作几乎是一模一样的 - 控制器:$data=Lesson::paginate(2); ...
- 黑马lavarel教程---12、lavarel验证码
黑马lavarel教程---12.lavarel验证码 一.总结 一句话总结: 用插件的时候仔细看插件的版本要求 1.lavarel安装验证码插件的时候,如果(可选)需要定义自己的配置,则需要生成配置 ...
- 黑马lavarel教程---11、响应处理
黑马lavarel教程---11.响应处理 一.总结 一句话总结: 如果在昂扬状态,看学习视频和运动时间重合,会很舒服 1.jquery的$.post参数为什么不需要占位? 因为每个参数的类型不同,可 ...
- 黑马lavarel教程---10、lavarel模型关联
黑马lavarel教程---10.lavarel模型关联 一.总结 一句话总结: 1.模型关联比较方便,一次定义,后面都可以使用 2.关联关系 使用动态属性进行调用 1.一对多,多对多实例? 一对多: ...
- 黑马lavarel教程---7、文件上传
黑马lavarel教程---7.文件上传 一.总结 一句话总结: 在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的. 1.在lavar ...
- 黑马lavarel教程---6、简单验证
黑马lavarel教程---6.简单验证 一.总结 一句话总结: 1.验证的最简单实例:$request的validate方法,验证通过可以继续进行,验证失败就重定向 2.中文提示可以用中文语言包 3 ...
- 黑马lavarel教程---4、csrf验证及相关
黑马lavarel教程---4.csrf验证及相关 一.总结 一句话总结: csrf验证就像短信验证码那样验证用户身份,这个验证是为了验证是本站的操作,用的是一个token字符串,外站如果有了这个to ...
- 黑马lavarel教程---3、数据库和视图注意点
黑马lavarel教程---3.数据库和视图注意点 一.总结 一句话总结: 使用其实都很简单,MVC的框架都很像,用的时候直接可以去看手册,这样才能记得住 1.数据库删除操作注意? 删非删:很多网站的 ...
随机推荐
- 安卓进阶之自定义View
目录 安卓进阶之自定义View 自定义View的工作流程和内容 工作流程 测量阶段和布局阶段的工作内容 View 和 ViewGroup 在测量阶段和布局阶段的区别 绘制阶段的工作内容 上手:实现继承 ...
- jumperver源码理解以及部分修改
一 admin后台处理以及展示修改 jumpserver 默认不开放admin后台(获取是我没用使用正确的打开方式,) 打开方式 找到程序的入口 urls.py 修改,另外主要看下settin ...
- JPA中的复杂查询
JPQL全称Java Persistence Query Language 基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在 ...
- JPA的API介绍、工具类抽取
1.Persistence对象 Persistence对象主要作用是用于获取EntityManagerFactory对象的 .通过调用该类的createEntityManagerFactory静态方法 ...
- 本地套接字-本地socket
本地套接字简单应用场景 一 #服务端--简单 import socket import os a='sock_file' if os.path.exists(a): os.remove(a) s=so ...
- Oracle笔记(十二) 集合、序列
一.集合 在数学的操作之中存在交.差.并.补的概念,而在数据的查询中也存在此概念,有如下几个连接符号: UNION:连接两个查询,相同的部分不显示: UNION ALL:连接两个查询,相同的部分显示: ...
- SpringAOP的实现方式
1.使用SpringAPI实现AOP <aop:config> <!-- 切入点:需要操作的目标类中的目标方法 execution中只需要修改全类名 --> <aop:p ...
- HAL库 TIM计数器及中断开启过程
1.初始化TIM基本计数器参数 void MX_TIM2_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig = {}; TIM_Master ...
- docker 在push镜像到本地registry出现的500 Internal Server Error
]# docker push 192.168.163.131:5000/test The push refers to a repository [192.168.163.131:5000/test] ...
- 第40题:组合总和II
一.问题描述: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合 ...