计算生产中不推荐的 Redis keys 是否还有过期时间?
Is counting Redis keys not recommended in production even has expiration time?
我在这里 post 看到 How to count the number of keys matching a pattern? 评论说不建议在生产中计算密钥。我相信这是真的。
我的问题是.. 密钥过期时仍然不推荐吗?过期删除密钥。
我想做的是通过将活跃用户存储在过期的 redis 密钥中来计算活跃用户的数量。我用 Laravel 来做。我需要计算匹配键才能获得活跃用户的数量。
有什么推荐吗?谢谢大家!
依靠前端设置的last_login
字段或last_active
字段不是更实用的解决方案吗?每 15 分钟或类似时间使用 Laravel
应用程序或用户 activity。您将在应用程序中的每次调用中设置的中间件。
class LastActivityMiddleware
{
public function handle(Request $request, Closure $next, ...$guards)
{
$user = Auth::user();
$user->last_activity = now();
$user->save();
return $next($request);
}
}
这将使它成为可能。
User::where('last_active', '>=', now()->subMinutes(15))->count();
另一个解决方案的 运行 时间会很糟糕,显然会破坏缓存,并且对于一个简单的问题来说只是一个非常复杂的解决方案。
我在这里 post 看到 How to count the number of keys matching a pattern? 评论说不建议在生产中计算密钥。我相信这是真的。
我的问题是.. 密钥过期时仍然不推荐吗?过期删除密钥。
我想做的是通过将活跃用户存储在过期的 redis 密钥中来计算活跃用户的数量。我用 Laravel 来做。我需要计算匹配键才能获得活跃用户的数量。
有什么推荐吗?谢谢大家!
依靠前端设置的last_login
字段或last_active
字段不是更实用的解决方案吗?每 15 分钟或类似时间使用 Laravel
应用程序或用户 activity。您将在应用程序中的每次调用中设置的中间件。
class LastActivityMiddleware
{
public function handle(Request $request, Closure $next, ...$guards)
{
$user = Auth::user();
$user->last_activity = now();
$user->save();
return $next($request);
}
}
这将使它成为可能。
User::where('last_active', '>=', now()->subMinutes(15))->count();
另一个解决方案的 运行 时间会很糟糕,显然会破坏缓存,并且对于一个简单的问题来说只是一个非常复杂的解决方案。