存储变量有什么好的解决方案吗?

问题描述 投票:0回答:2

我想存储从前端(ReactJs)发送到我的后端(asp.net core)的变量,例如这个URL:

http://localhost:3000/?inviteCode=TRIAL
,我想将值
TRIAL
存储在任何地方(后端优先级更高) )稍后使用。

这些东西让我很困惑我选择哪种存储方式。我不想将它存储在内存存储(memcache)中,因为我在很多地方使用过它,这可能会导致主机虚拟机内存不足(我认为是这样)。将其存储在数据库中并不是一个好主意,存储这样的一点值。

将其存储在前端 cookie 或本地存储中是一个很好的解决方案,但我的首要任务是将其存储在后端。

那么有什么解决方案来存储这个值吗?

c# asp.net-core memory-management
2个回答
1
投票

看起来剩下的唯一方法是与应用程序服务器位于同一物理服务器上的另一个数据库(我假设您当前的数据库是远程的)。 SQLite 可能是最简单的选择。

但一般来说,您将来可能会需要这个值,在这种情况下最好立即将其保存到数据库中。

如果不是,那就再想一想,这些查询是否真的会那么多到不断溢出VM(一次性溢出并不可怕,操作系统可以处理)。可以根据需要扩大虚拟机吗?

作为折衷方案,您可以将 memcache 放在单独的服务器上。


0
投票

存储从前端(ReactJs)发送到我的后端的变量......我已经 在很多地方使用它,这可能会导致内存不足

我们现在有一个客户端应用程序+ Web api作为后端,数据从客户端发送到API后端,我相信这些数据会在API中频繁使用,因此您更愿意将其存储在后端。

正如我们所知,Web api 是无状态的,因此我们无法在会话中存储数据(每个 http 连接都会创建一个新会话)。为了更有效地访问数据,我们需要针对每个场景进行区分。如果我们想访问react应用程序中的数据,那么将其存储在localstorage中是最好的选择,或者换句话说,我们应该将数据存储在浏览器中,以便js代码在本地读取,无需任何IO或远程连接.

如果我们要访问API中的数据,由于当前场景下我们没有内置的session,所以我们必须找到一些地方来存储数据 -> 我们有内存和磁盘。

如果我们将数据存储在磁盘中,我们需要IO,在这种情况下,如果我们有大量此类数据并且数据不会经常更改,我们可以使用数据库,将数据像字典一样存储在数据库中,即使它带来了IO成本,但我们必须这样做,它可能会带来性能问题,但由于数据不大,查询应该很快。如果我们没有那么多数据要存储,我们也可以将数据写入json文件或文本文件(取决于数据格式),但它仍然将数据存储到磁盘中。 SSD 将有助于提高性能。

如果我们将数据存储在内存中,我们可以使用像redis这样的内存数据库。当数据经常更改但又需要频繁使用时,内存数据库会带来好处。由于数据存储在内存中,我们不需要磁盘IO,获取起来会比访问普通数据库快很多。

© www.soinside.com 2019 - 2024. All rights reserved.