理解Laravel缓存:缓存facade和Redis
我是拉威尔的新手。我对这个话题做了研究,但似乎找不到一个能帮我澄清问题的答案 我知道Laravel的默认缓存驱动程序设置为file,我可以更改它。它还具有一些artisan缓存命令,例如:理解Laravel缓存:缓存facade和Redis,laravel,caching,redis,Laravel,Caching,Redis,我是拉威尔的新手。我对这个话题做了研究,但似乎找不到一个能帮我澄清问题的答案 我知道Laravel的默认缓存驱动程序设置为file,我可以更改它。它还具有一些artisan缓存命令,例如: php artisan config:cache php artisan route:cache 1)即使Laravel有一些内置的命令和功能可以自动处理某些缓存(不知道具体是什么部分),我仍然必须在查询结果上手动使用缓存外观,对吗 它不会自动执行,如果我想更改某些内容,我只需要使用缓存外观,对吗 以下是教
php artisan config:cache
php artisan route:cache
1)即使Laravel有一些内置的命令和功能可以自动处理某些缓存(不知道具体是什么部分),我仍然必须在查询结果上手动使用缓存外观,对吗
它不会自动执行,如果我想更改某些内容,我只需要使用缓存外观,对吗
以下是教程中的一个随机示例:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
2)当使用Redis(带有predis软件包)作为缓存驱动程序时,在某些情况下,我需要使用缓存外观还是Redis外观,或者两者都需要?或者我可以简单地在Laravel和server(Forge上的数字海洋水滴)中启用Redis,而不做任何其他事情吗
我在Laravel文档中看到过类似的内容,使用缓存外观:
Cache::store('redis')->put('bar', 'baz', 600);
我还看到了使用Redis facade的教程:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
我不知道该怎么做。Common:
它们都是缓存
它们都用于减少时间成本
不同点:
配置和路线: 它属于应用程序。我们称之为应用程序缓存 php artisan配置:缓存 php artisan路由:缓存 这两个命令用于缓存路由和配置 路径: 它们总是存储在
bootstrap/cache/
运行
php artisan配置:清除
php artisan路由:清除
仅清除引导/cache/
中的目录和文件
它们是静态的。因此,只有当您更改它们时,它们才会更改
贝玲妃
如果更改它们,则需要手动清除
和缓存
它们
完成这些路由和配置后
Laravel不需要再次从文件中读取配置和路由,这需要IO时间成本
文件系统缓存和Redis缓存: 文件系统缓存和Redis缓存也是缓存 但是,它们使用不同的驱动程序来存储数据,这意味着存储缓存数据的位置 文件系统路径:如果您使用的是文件系统驱动程序。它们存储在
storage/framework/cache/
Reids路径:数据按键值存储在redis中
你什么时候用?
当您发现有许多请求此代码获取数据时。
这些数据的变化并不是那么快
您可以使用缓存来存储它们,然后,下次再向该api发出另一个请求。
它只是从缓存中获取数据。
如下图所示:
$posts=Cache::memory('index.posts',30,function())
{return Post::with('comments','tags','author','seo')->whereHidden(0)->get();});
第一个请求从数据库获取POST的数据,然后将这些数据存储在缓存(REID或文件系统)中,该缓存在30秒后过期
下一个请求仅通过缓存获取POST的数据。他们不需要再次在数据库中搜索
还有这个:
使用light\Support\Facades\Redis;
路由::get('/',函数(){
$visions=Redis::incr('visions');
回访;;
});
意味着当人们请求localhost:8000/
时,用户在redis
中的访问次数会增加(不需要存储在数据库中,花费更多时间),
下次,当请求搜索访问计数时,可以很快在redis
中找到它
PS:这里使用Redis Facade,然后数据存储在Redis
中
如果您使用redis作为缓存驱动程序,cache::memory()
也将在redis中存储数据
但是,使用Redis Facade,可以使用许多Redis方法
哪个更好?
我认为redis
比filesystem
好
mongodb
顺便说一句,我的英语不是很好,希望你能理解。Common:
它们都是缓存
它们都用于减少时间成本
不同点:
配置和路线: 它属于应用程序。我们称之为应用程序缓存 php artisan配置:缓存 php artisan路由:缓存 这两个命令用于缓存路由和配置 路径: 它们总是存储在
bootstrap/cache/
运行
php artisan配置:清除
php artisan路由:清除
仅清除引导/cache/
中的目录和文件
它们是静态的。因此,只有当您更改它们时,它们才会更改
贝玲妃
如果更改它们,则需要手动清除
和缓存
它们
完成这些路由和配置后
Laravel不需要再次从文件中读取配置和路由,这需要IO时间成本
文件系统缓存和Redis缓存: 文件系统缓存和Redis缓存也是缓存 但是,它们使用不同的驱动程序来存储数据,这意味着存储缓存数据的位置 文件系统路径:如果