gpt4 book ai didi

c# - 在 ASP.NET Core 应用程序中临时存储数据

转载 作者:行者123 更新时间:2023-12-04 03:15:24 24 4
gpt4 key购买 nike

我正在使用单例字典集合来存储用户集合,以便用户可以使用他们的 guid 访问 api 来访问他们的信用卡详细信息。

有没有比使用单例字典集合更安全的存储数据的方法?它仅用于临时存储 - 不涉及数据库。

最佳答案

我可能会质疑单个 guid 是否是打开信用卡详细信息王国的 key ...事实上,我也会质疑在任何情况下从 API 提供完整的信用卡详细信息。

但是让我们假装问题更多的是关于一般的临时存储。

在内存中存储没问题,但是你会遇到两个问题。

  1. 当您的应用重新启动时,缓存会“丢失”。
  2. 您将无法横向扩展,因为缓存是针对单个应用的。服务器池中的其他机器将不得不构建自己的缓存(并且您将需要担心粘性 session 等其他事情)。

更好的选择确实是Redis。您将需要下载 redis from here假设你在 Windows 上并安装它。显然,在部署时您可以使用 Azure Redis 等。对于代码,幸运的是 Microsoft 已经为您完成了大部分工作。主要取自这篇文章:http://dotnetcoretutorials.com/2017/01/06/using-redis-cache-net-core/

在您的 .net 核心应用程序中安装此包。

Install-Package Microsoft.Extensions.Caching.Redis

在 startup.cs 的配置服务方法中,您需要将 Redis 添加为缓存服务。你这样做:

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();

services.AddDistributedRedisCache(option =>
{
option.Configuration = "127.0.0.1";
option.InstanceName = "master";
});
}

然后您可以在您的 Controller /服务中请求 IDistributedCache。类似于以下内容:

public class HomeController : Controller
{
private readonly IDistributedCache _distributedCache;

public HomeController(IDistributedCache distributedCache)
{
_distributedCache = distributedCache;
}

[HttpGet]
public async Task<string> Get()
{
//You can access _distributedCache here.
}
}

关于c# - 在 ASP.NET Core 应用程序中临时存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41476542/

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