我是 Laravel 的新手。我已经对这个主题进行了研究,但我似乎找不到一个可以为我澄清问题的答案。
我知道 Laravel 的默认缓存驱动程序设置为file,我可以更改它。它还具有一些 artisan 缓存命令,例如:
php artisan config:cache
php artisan route:cache
Run Code Online (Sandbox Code Playgroud)
1)即使Laravel有一些内置命令和功能可以自动处理一些缓存(不明白到底是哪些部分),我仍然必须在查询结果上手动使用Cache门面,对吧?
它不会自动执行此操作,如果我想更改某些内容或某些内容,我只需使用缓存外观,对吧?
这是教程中的一个随机示例:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
Run Code Online (Sandbox Code Playgroud)
2)使用Redis时(带有predis包)作为缓存驱动程序时,在某些情况下我是否需要使用Cache Facade,或Redis Facade,或两者都使用?或者我可以简单地在 Laravel 和服务器(Forge 上的 Digital Ocean Droplet)中启用 Redis,而不执行任何其他操作?
我在 Laravel 文档中看到过类似的内容,使用 Cache 门面:
Cache::store('redis')->put('bar', 'baz', 600);
Run Code Online (Sandbox Code Playgroud)
我还看过一个使用 Redis 门面的教程:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做才是正确的。