开发者社区> 问答> 正文

Mongodb 插入数据有重复怎么解决?

我现在用nodejs做了一个活动网站 每日访问量大概10w
入库的时候手机号会有重复的出现,在同一时间内插入的,虽然很少 但是还是有.
我已经在入库前进行各种判断了, 还设置了公共变量将注册的手机号存起来,但是同时间内还是会有重复.
因为不能删除数据,所以不能增加唯一索引,只会在高访问量的情况下才会出现,然后我自己也没法测试.
请问大家有什么经验分享吗? 或者有好的解决办法么?

展开
收起
蛮大人123 2016-02-14 15:00:20 4959 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    MongoDB 不支持 ACID 所以得自己处理。防止并发访问导致问题的思路是:
    •加锁
    •访问数据
    •解锁
    所以你可以弄一个「插入数据锁」。一个简单的方案是:Redis 里放一个 list 名为 insert_lock,里边只有一个元素。每次插入操作前拿 blpop 命令去取那个元素,插入完成之后再把那个元素放回去。
    当然你要是能用共享内存就更好了。或者用文件锁(如 flock)也行。

    2019-07-17 18:42:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
MongoDB多数据中心的方案选型之路 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载