gpt4 book ai didi

php - 如何在 Laravel 中使用 Redis 缓存?

转载 作者:行者123 更新时间:2023-12-03 01:03:41 31 4
gpt4 key购买 nike

这是我第一次使用 Laravel 和 Redis。我了解如何在终端上获取、设置 Redis 等。但不知道如何在 Laravel 应用程序上应用 Redis。我有一个应用程序,使用 MVC 模式将参与者的信息保存在数据库中。我想将其更改为使用 Redis 缓存以使其更快(用于练习)。我需要做什么? 能用代码解释一下吗?

这是ParticipantController。 “编辑”功能将用户发送到编辑页面,用户编辑信息并按“保存”,激活“更新”功能。 store/updateUserInput 函数只是将数据保存到数据库中,仅此而已。

   /**
* Show the form for editing the specified participant.
*
* @param int $id
* @return View
*/
public function edit(int $id): View
{
$participant = Participant::find($id);
if(empty($participant)){
return view('errors.404');
}
return view('participants.edit', ['participant'=>$participant]);
}

/**
* Update the specified participant in storage.
*
* @param ParticipantValidation $request
* @return RedirectResponse
*/
public function update(ParticipantValidation $request): RedirectResponse
{
$participant = Participant::find($request->id);
if(empty($participant)){
return view('errors.404');
}
$detail = $request->all();
Participant::updateUserInput($detail);
return redirect()->route('participants.create', $detail['event_id'])->with('success', 'Updated!');
}

+plus 我在“ Controller ”之上尝试使用此代码来使用诸如 $redis->set('message', 'Hello world'); 之类的东西,但出现错误,他们找不到 ' Predis/Autoload.php'

require 'Predis/Autoload.php';
PredisAutoloader::register();

try {
$redis = new PredisClient();
}
catch (Exception $e) {
die($e->getMessage());
}

最佳答案

您可以使用缓存外观

在您的 .env 文件中,您必须添加 CACHE_DRIVER=redis

然后每当您想要获取 Participant 的实例时:

$participant = null;
$key ="Participant".$id;
if(Cache::has($key)//get participant from cache
$participant = Cache::get($key);
else{//get participant and cache for 3 minutes
$participant = Participant::find($id);
$seconds = 180;
Cache::set($key, $participant, $seconds);
}

关于php - 如何在 Laravel 中使用 Redis 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57984338/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com