我想缓存从MySQL数据库中获取的数据,为此我目前将数据存储在一个对象中。
在查询数据库之前,我会检查所需数据是否存在于meantioned对象中。如果没有,我将查询并插入它。
这很安静,我的网络服务器现在只需获取一次数据并重复使用它。
我现在关注的是:在使用nodejs的群集功能时,我是否必须考虑对象中此类数据结构的并发写入/读取?
答案 0 :(得分:0)
你在Node.js程序上编写的每一行JavaScript都是线程安全的,可以这么说 - 在任何给定的时间,只执行一个语句。您可以执行异步操作的事实仅在对程序员完全透明的低级实现中实现。确切地说,当您执行某些输入/输出操作(即读取文件,执行TCP / UDP通信或生成子进程)时,您只能以“真正并行”的方式运行某些代码。即便如此,与您的应用程序并行执行的唯一代码是Node的本机C / C ++代码。
由于您使用JavaScript对象作为缓存存储,因此可以保证不会有人同时读取或写入它。
对于cluster,每个worker都创建了自己的进程,因此拥有自己的代码中存在的每个JavaScript变量或对象的版本。