首页 > 解决方案 > 在 C# 中存储一些不可变和高度访问的数据的最佳方法是什么?

问题描述

一些背景- 我正在从事一个需要某种摇头身份验证的项目。外部服务会发送一个带有 Token 的请求,我会用 Validator 来回答。然后它将发送第二个请求,其中包含相同的令牌和我应该存储在数据库中的数据。该令牌还用于获取在数据库中插入数据所需的几个额外字段。由于几个项目的限制和要求,这个“api”是在无服务器(Azure Functions)中实现的。

由于只有 100 对不经常更新的令牌验证器对(我将每个月左右手动更新),因此我决定每次收到传入请求时都不查询数据库。通常我会简单地在 C# 中使用缓存,但由于我使用的是函数,代码将在多个更改进程中执行,这意味着没有共享缓存。我还认为使用缓存服务,例如 Redis 或 Azure Cache 将是一种矫枉过正。

我当前的解决方案- 目前,我将数据存储在一个哈希表中,该哈希表将一个令牌映射到一个包含验证器和我需要的额外字段的 ValidatorModel 对象。它工作得很好,但由于它是一个大 C# 对象,更新起来很痛苦,当我打开它时 IDE 会滞后等等。我也不知道在 C# 中硬编码是否是个好主意那。

我一直在想什么- 我在考虑存储一个包含我的 Hashmap 对象的二进制 protobuf 文件。我不确定这是否会奏效或表现良好。

我的问题- 存储此类数据并以性能方式访问它的最佳方式是什么?

标签: c#asp.net.net-coreazure-functions

解决方案


推荐阅读