gpt4 book ai didi

symfony - FOSUserBundle - Redis 中的用户实体

转载 作者:IT王子 更新时间:2023-10-29 06:06:55 24 4
gpt4 key购买 nike

我正在开发一个基于 symfony2 的项目,我使用 FOSUserBundle 进行用户管理。一切正常,但我发现了一个不便之处。当用户登录时,FOSUserBundle 运行一个 SELECT 查询以从数据库中获取用户实体。对于大量用户,这是很多查询,我想避免。因为我也在我的项目中使用 Redis,所以我想在请求之间将用户实体存储在 redis 中。在 FOSUserBundle 中甚至可能吗?我认为一个很好的选择是将用户实体也存储在 session 中并将 session 放在 Redis 中,但我仍然必须做一些事情来避免在每个请求中进行 SELECT 查询。有什么建议吗?

最佳答案

你总是可以缓存学说查询。

或者,如果您想更改用户的检索和存储方式,您可以随时覆盖他们的User Provider。这可能是首选方式。

例如:

class MyFOSUserProvider extends FOS\UserBundle\Security\UserProvider
{
protected function findUser($username)
{
// If user is cached in session or wherever
// Return it here

// If it isn't, fetch it
$user = $this->userManager->findUserByUsername($username);

// Store it in your cache

// Return it
return $user;
}
}

关于symfony - FOSUserBundle - Redis 中的用户实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022709/

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