繁体   English   中英

MySQL 为 Node.JS 中的许多工作人员共享内存(可能吗?)

[英]MySQL to share memory for many workers in Node.JS (possible?)

遇到一个有趣的场景,我有许多服务器正在运行,我正在尽我所能通过 IPC 路由它们,但发现这可能允许在必要的写入发生之前进行双重读取。 这反过来可能会给我错误的计数/值。

我正在寻找设置一个数据库或某种类型的解决方案,我可以完全做到:

我根据最低计数读取可用服务器的数据库。 我选择的服务器在一次操作中将其计数更新为 +1。 我可能有 100 个请求通过 Web 套接字进入,并且每个请求都需要这个计数准确,以免服务器过载。

我担心两个工作人员同时执行相同的请求,我希望一个人先完成他们的读/写,而不是减慢其他请求的速度。

这对 MySQL 可行还是有更快的解决方案? 我想我需要符合 ACID 标准。

是的,使用 MySQL(或其他数据库)在任意数量的客户端之间进行公共存储。 使用“事务”来防止客户端相互踩踏:

START TRANSACTION;
do several reads/writes with database, but don't take too long
COMMIT;

在进行读取时,如果您可能要更改获取的行,请使用它:

SELECT ... FOR UPDATE;

这样,您可以有效地防止其他线程在您进入后续UPDATEDELETE之前弄乱这些行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM