使用了express作为服务端框架,然后使用redis来存储一些数据。
发现一个问题,一直想不明白。
比如 A 在 time 2:31:11:00 时发送ajax请求,该请求修改redis里某个数据,B在time 2:31:11:02时发送ajax请求修改redis里的某个数据。
于是服务器开始了如下操作
2:31:11:00 POST updateData user = A;
2:31:11:01 POST updateData user = B;
2:31:11:01 服务器拉取redis里的某个集合 (A的请求);
2:31:11:02 服务器拉取redis里的某个集合 (B的请求);
2:31:11:02 服务器该集合里关于用户A的数据被修改;
2:31:11:03 服务器该集合里关于用户B的数据被修改;
2:31:11:03 服务器把修改过A的数据集合重新更新到redis上;
2:31:11:04 服务器把修改过B的数据集合重新更新到redis上;
这样下来,不是redis上的数据变成只有B修改,A没有修改吗?
nodejs是执行代码单线程,是不是说如果A.B一前一后请求,先处理完A的,再处理B的?
跃然一笑
相关分类