Javascript NodeJS:使用内存缓存提高性能,使用存储实现持久性
我想知道我的以下方法是否合理,或者是否有我遗漏的缺陷: 问题是:SQL查询速度很慢。内存缓存不是持久的 我的想法是在以下事项中编写我的nodejs流程:Javascript NodeJS:使用内存缓存提高性能,使用存储实现持久性,javascript,node.js,Javascript,Node.js,我想知道我的以下方法是否合理,或者是否有我遗漏的缺陷: 问题是:SQL查询速度很慢。内存缓存不是持久的 我的想法是在以下事项中编写我的nodejs流程: 初始化 从sql db获取当前状态并保留在变量中 对变量运行所有请求查询 更新并更改变量,然后更新sql 仅在sql成功更新后响应 通过这种方法,我将完全避免SQL在多个表上运行复杂查询,并且可以使用id作为对象键轻松有效地检查内容 由于NodeJS是单线程的,我甚至拥有高效的“事务”功能,因为内存变量的更新将以原子方式进行 尽管这种方法不允许
是否有一些我遗漏的基本缺陷?我会想到的事情:
rc=sqlite3\u open(“:memory:”,&db)代码>()
问自己一些问题:一些数据丢失可以吗?(即在录音中丢弃帧)。在有限的时间内提供过时的数据可以吗?为了性能,您能承受多少混乱的体系结构?(如果SQL很慢,为什么不买一台更快的服务器?或者一台有更多缓存的服务器)你说的“内存中的缓存不是持久的”是什么意思?@Bergi如果服务器崩溃,数据就会消失。通过将数据存储到sql并在初始化后获取数据,我的应用程序将在服务器崩溃后生存。这是一个基本缺陷:您基本上说过要在node.js中实现自己的数据库引擎。这可能有什么问题?@ThatBrianDude这就是为什么它被称为“内存缓存”,而不是“内存持久存储”。缓存已经完全实现了您所描述的功能,那么为什么要重新实现它呢。内存限制不会有问题。我目前的项目将是一个游戏匹配服务器,因此数据将是用户和活动游戏(垂直缩放始终是一个选项)。2.如前所述,我可能不需要任何复杂的查询,只需要简单的查找。3.这会带来什么改进?关于第三点。当您的应用程序随着时间的推移而增长时(例如,更多的用户加入您的服务),它将赋予您更大的灵活性。另外,当您以后想要实现需要更复杂数据查找的功能时,会发生什么情况?如果您选择使用第二个线程进行数据获取操作,则某些用户的响应时间会增加,但您的应用程序不会因所有连接的用户而停止。我认为子进程将从主进程访问数据?我理解。我会调查的