黑马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

二、缓存操作

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

转载于:https://www.cnblogs.com/Renyi-Fan/p/11585993.html

黑马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. linux7系统怎么启动ftp,教你如何在CentOS7系统中配置ftp服务
  2. 【音频处理】Polyphone 样本编辑 和 样本工具 ( 波形图 | 信息 | 频率分析 | 均衡器 | 播放器 | 终点裁剪 | 自动循环节 | 空白移除 | 音量 平衡 音调 调整 )
  3. laravel nosql
  4. 呼呗电销机器人_为什么企业销售电销都用电销外呼智能机器人
  5. RabbitMQ从入门到精通
  6. 关于大型网站技术演进的思考(三)--存储的瓶颈(3)
  7. python如何处理spark上的数据_Pyspark获取并处理RDD数据代码实例
  8. 禁止选择文字和文本超出显示省略号
  9. python使用布隆过滤器筛选数据
  10. 轻松搞定ServerCore初始设置
  11. 抗压力就是一切!!!
  12. c代码实现matlab中对矩阵fftshift思路
  13. 实型变量的定义和应用
  14. VASP+Phono3py计算声子linewidth
  15. 小米游戏本 七代 deepin 网卡ac 8265 wifi 驱动 安装
  16. 【web性能】获取web各个阶段响应时间:服务器响应时间、首页白屏时间、dom渲染完成时间等
  17. 【C语言小游戏】学生信息管理系统
  18. threejs 实现小飞机建模
  19. 3-8课:数字为什么长这样儿:说说进位制
  20. zenmap扫描ip段_NMAP 常用扫描简介(一)

热门文章

  1. js条件语句,用if...else if....else方程ax2+bx+c=0一元二次方程。求根
  2. 多重背包 (poj 1014)
  3. WebService的事务处理 (转)
  4. [计算数学基础]矩阵微分
  5. 设计模式=相似模式区别
  6. Ubuntu下安装OpenGL/Glut库
  7. 深度学习将会变革NLP中的中文分词
  8. 15个Android通用流行框架大全
  9. 火狐浏览器不执行alert的问题
  10. 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件