是否有某种机制可以以高并发方式处理数据?
首先,我们使用了 mongodb,它具有解决问题的原子更新。但是更新频率总计大约 1000\秒,我们设置 Redis 来帮助 mongo 并在它们之间编写同步。它工作得很好,但我们有 redis 的 concerrency 问题。
例如:
- 第一个请求出现在 0.01 毫秒 - 进程在 0.04 毫秒退出
- 第二个请求在 0.02 毫秒出现并在 0.03 秒退出。
两个请求都得到相同的对象?更改它的数据并在退出时保存。
当我们使用 mongodb 时——我们可以做——对象的部分更新,但使用 redis——我们不能。
是否可以同时使用来自多个进程的相同对象(数据)而不是整个覆盖它 - 只覆盖它的一部分?
我找到的唯一方法 - 在第二次获取之前创建锁定机制并等待进程存在。