1064940
[高并发]在高并发的情况下,怎么生成像陌陌里面每个用户都有的 数字账号 呢,如何才会不重复呢? 数据库是mongodb
mongodb的锁:
[高并发]在高并发的情况下,怎么生成像陌陌里面每个用户都有的 数字账号 呢,如何才会不重复呢? 数据库是mongodb
mongodb的锁:
分布式ID,我最欣赏的实现也是snowflake, mongo的也差不多,了解一下原理,就可以自己实现一个了,关键还是思想,这不得不服,在这之前,我国的基本也是什么 给不同服务器分配不同id列表 这样的弱鸡办法。
@Treagzhao 数字类型爬起来方便不好吗?
串行化影响性能,可以给不同服务器分配不同id列表,比如开100个server,第i个server只能注册mod100余i的id。
插一句题外话,id不建议用数字类型,用随机串比较好
@whw1988 redis的incr是有锁的,所以一定会是不同的。取到maxId之后,异步丢出去该更新
@i5ting redis可以保证 每个用户读到的maxId不一样吗,我是打算用一张表来存maxId,每个用户读到maxId然后加1,更新到用户表的id字段。 现在就是高并发时 好多用户读到的maxId可能会一样(虽然写有锁,可以保证maxId更新是对的,但是读没锁,会导致用户表的id字段有一些会一样)