所以我在node.js中有一个后端实现,它主要包含一个JSON对象的全局数组。 JSON对象由用户请求(POSTS)填充。因此,全局数组的大小与用户数量成比例增加。数组中的JSON对象不相同。这是一个非常糟糕的架构。但我只是按照我所知道的去做,并决定在飞行中学习。
我在具有6GB RAM的AWS微型实例上运行它。
如何在爆炸之前清除此全局数组?
我想到的选项:
如果不必完全重写nodejs应用程序,我无法想到任何其他解决方案。你们能想到任何......?非常感谢对此的任何讨论。
答案 0 :(得分:2)
我看到你正在使用内存作为存储。如果是这种情况并且您的代码是同步的(您似乎不使用数据库,那么可能),那么实际解决方案 1。是正确的。这是因为JavaScript是单线程的,这意味着当一个代码运行时另一个代码无法运行。 JavaScript中没有并发性。这只是一种幻觉,因为Node.js太快了。
因此,在交易结束之前,您的清洁代码不会被激活。这当然是假设您的代码是同步的(并且从我看来可能是这样)。
但仍然有150个理由不这样做。最重要的是你正在重新发明轮子!让数据库为您努力工作。使用适当的数据库将为您节省将来的所有麻烦。有许多可能性:MySQL,PostgreSQL,MongoDB(我最喜欢的),CouchDB和许多其他。在这一点上它应该不重要。只需选一个。
答案 1 :(得分:1)
我建议你开始将你的JSON保存到像http://www.couchbase.com/这样的非关系型数据库。
即使在群集中,Couchbase也非常易于设置和使用。它使用简单的键值设计,因此保存数据非常简单:
couchbaseClient.set("someKey", "yourJSON")
然后检索您的数据:
data = couchbaseClient.set("someKey")
系统也非常快,OMGPOP用于Draw Something。 http://blog.couchbase.com/preparing-massive-growth-revisited