栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

了解Laravel缓存:缓存外观和Redis

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解Laravel缓存:缓存外观和Redis

共同:

它们都是 缓存

它们全部用于 减少时间成本

差异网:


配置和路线:

它属于 application 。我们称之为 应用程序缓存

php artisan config:cachephp artisan route:cache

这两个命令用于缓存路由和配置。

路径:

它们总是存储在

bootstrap/cache/

跑步

php artisan config:clearphp artisan route:clear

仅清除中的目录和文件

bootstrap/cache/

它们是 静态的 。因此,仅在您更改它们时才更改它们。

贝尼菲特

如果你改变它们,你需要

clear
cache
手动他们。

在您完成这些路由和配置之后。

Laravel 不需要再次从文件读取配置和路由, 这花费了IO时间。


文件系统缓存和Redis缓存:

文件系统缓存和Redis缓存也都是缓存。

但是,它们使用 不同的驱动程序 来存储数据,这意味着 您可以在其中存储缓存数据

文件系统路径:如果您正在使用文件系统驱动程序。它们存储在

storage/framework/cache/

Reids PATH:数据

redis
按键值存储在其中。

您什么时候使用它们?

当您发现此代码有很多请求来获取数据时。这些数据并没有这么快地改变。

您可以使用缓存来存储它们,然后在下次对该API发出另一个请求时使用。它只是从缓存中获取数据。如下所示:

$posts = Cache::remember('index.posts', 30, function(){return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});

第一个请求从数据库中获取帖子的数据,然后将这些数据存储在30秒后过期的缓存(Reids或Filesystem)中。

下一个请求仅通过缓存获取帖子的数据。他们不需要再次在数据库中搜索。

还有这个:

use IlluminateSupportFacadesRedis;Route::get('/', function () {      $visits = Redis::incr('visits');      return $visits; });

意味着当人们请求时

localhost:8000/
,用户的访问次数增加了
redis
(不需要存储在数据库中,这花费了更多的时间),下次,当请求搜索访问数时,可以
redis
很快找到它。

PS:这里使用Redis Facade,然后将数据存储在中

redis

如果您将redis用作缓存驱动程序,那么

Cache::remember()
也会将数据存储在redis中。

但是,使用Redis Facade,可以使用许多Redis方法。

哪个更好?

我认为

redis
比还好
filesystem

  1. 因为

    redis
    将数据存储在内存中,而文件系统存储在磁盘中。从内存读取数据比从磁盘读取数据

  2. *在Redis中 *操作 数据比文件系统 更容易 。例如,Redis支持清除特定标签的所有缓存,但是文件系统无法[因为文件系统通过加密密钥的名称存储缓存数据]。

  3. 对于 分布式 服务器,文件系统缓存不是一个好主意。降低缓存命中率。

老实说,还有其他驱动程序可以选择

mongodb

顺便说一句,我的英语不是很好,希望你能理解。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号