laravel的响应及缓存功能

Posted 瑾!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel的响应及缓存功能相关的知识,希望对你有一定的参考价值。

在laravel中,相应正常情况下有2个类型:常规的直接响应,另外一个是ajax的响应。

1.1 常规响应:

展示视图:return view('welcome'); 直接返回某个字符串:return 'hello world';

1.2 ajax请求的响应

语法:return response() -> json(需要json输出的数据); // 数据是数组格式,对象也可以 1、创建路由 /member

2、创建需要的方法并获取基本数据

效果:

1.3 跳转响应(重定向)

在有一些页面,例如同步添加操作,完成操作之后不能停留在当前页面,最好做一个跳转操作,也就是需要一个跳转的响应。

错误信息的获取与之前自动验证那里的方式一样,通过$errors变量来获取即可。

二、会话控制(记忆)

常见应用:增删改查 session默认存到文件中 session文件的目录:storage\\framework\\sessions

2.1 使用Session类

控制器头部引用use Illuminate\\Support\\Facades\\Session; 由于session类在app.php中已经定义好别名, 所以在控制器中引入到时候可以直接use Session

三、缓存操作(记忆)

Laeavel为不同的缓存系统提供了统一的API,缓存配置位于config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。 主要方法:

Cache::put() Cache::get() Cache::add() Cache::pull() Cache::forever() Cache::forget() Cache::has()

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

3.1 设置缓存

语法:Cache::put('key', 'value', $minutes) Key:键 Value:值 $minutes:有效期,单位是分钟


语法:Cache::add('key', 'value', $minutes); Key:键 Value:值 $minutes:有效期,单位是分钟


3.1.1 使用put

定义路由:

定义方法:

在页面中访问此路由:

效果:

3.1.2 使用add

效果:

验证了add如果有这个键则不会覆盖。


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

3.2 获取缓存数据

Cache门面的get方法用于从缓存中获取缓存项,如果缓存项不存在,返回null。

value=Cache::get(′key′);获取指定的key值。value = Cache::get('key'); 获取指定的key值。value=Cache::get(′key′);获取指定的key值。value = Cache::get('key', 'default'); 获取指定的key值,如果不存在,则使用默认值。

可以传递一个匿名函数作为默认值,如果缓存项不存在的话闭包的结果将会被返回。

$value = Cache::get('key', function (){
	return DB::table(...) -> get();
})

检查缓存项是否存在:

if (Cache::has('key')) {
}

3.3 删除缓存数据

语法:$value = Cache::pull('key'); 从缓存中获取缓存项然后删除,如果缓存不存在的话返回null,一般设置一次性的存储的数据。


语法:Cache::forget('key'); 使用forget方法从缓存中移除缓存项数据


语法:Cache::flush(); 使用flush方法清除所有缓存;并且删除对应的目录。

四、缓存数值的增加 / 减少

increment和decrement方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的树木:一般会用作计数器

Cache::increment('key'); Cache::increment('key', amount);Cache::decrement(′key′);Cache::decrement(′key′,amount); Cache::decrement('key'); Cache::decrement('key', amount);Cache::decrement(′key′);Cache::decrement(′key′,amount);

例:

效果:

注意:如果用计数器,则在初始化的时候不能使用put和forever,因为这个2个方法都会重复的初始化计数器。

五、获取并存储(重点)

有时候可能想要获取缓存项,但如果请求的缓存项不存在时给它储存一个默认值。

$value = Cache::remember('key', $minutes, function () {
	Cache::add('key', 'value', $minutes)
	return DB::table('users') -> get();
})

比较典型的操作就是在获取微信的access_token的时候可以使用,原因是access_token本身一天只有2000次的配额,而其有7200s的有效期,在有效期内可以不用去刷新请求。

demo:

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

以上是关于laravel的响应及缓存功能的主要内容,如果未能解决你的问题,请参考以下文章

ini 使用nginx缓存并响应Web请求#nginx #php #performance #laravel

Android主流视频播放及缓存实现原理调研

IOS开发-OC学习-常用功能代码片段整理

预期响应代码 220,但在 Laravel 中得到代码“”,消息“”

简单对比vue2.x与vue3.x响应式及新功能

Laravel 使用 Redis 缓存非常慢