
1 kayseen OP 我是单机使用, 如果两个用户在同一毫秒申请这个编码,因为依赖时间的关系是一定会重复吗? |
2 aec4d 2020-04-02 17:33:06 +08:00 via iPhone 都懒得看 CSDN 就知道怎么回事儿。理解原理才行,是不可能重复的,除非是多线程,多进程或者分布式环境,这种情况并发高一定会有重复。可以搞一个中心化发号器杜绝重复 |
5 banxi1988 2020-04-02 17:40:06 +08:00 推荐一个视频 ,对 snowflake 算法有说明. Python 实现的. https://www.bilibili.com/video/BV1TJ411D7Cw/ |
6 lhx2008 2020-04-02 17:59:13 +08:00 via Android 这玩意肯定是在 pip 或者 github 上面找个多人用的库 |
7 gclm 2020-04-02 19:03:37 +08:00 via Android 时钟回拨。确实会重复,可以其他算法生成 ID |
8 superrichman 2020-04-02 19:13:28 +08:00 via iPhone 可以考虑用 redis 的 incr 来生成 id |
9 keshawnvan 2020-04-02 19:21:13 +08:00 你可以参考一下我的实现,有解决时钟回拨 https://www.yuque.com/kaixiang-jinoo/gtspek/mft5gx |
10 kayseen OP @keshawnvan 刚看了下你写的几篇文章真太好了,可惜看不懂 JAVA。。。 |
11 kayseen OP @superrichman 谢谢提供思路,之前有考虑过,觉得雪花算法不依赖数据库挺好的哈哈 |
14 kayseen OP @lhx2008 唉,说起来你可能不信,我在 github 上没有找到 python 版本用的人多的 |
16 keshawnvan 2020-04-03 10:52:13 +08:00 @kayseen 看懂原理自己实现以下就可以了 |
17 TransAM 2020-04-03 14:03:11 +08:00 via Android 不加锁也可以,每个线程维护自己的计数器,机器 id 后面插入 tid 。 |
18 cz5424 2020-04-04 19:40:48 +08:00 上线至今没遇到重复的 |
20 rogwan 2020-04-08 07:42:36 +08:00 via iPhone 可以考虑下 short uuid |
21 lolizeppelin 2020-04-08 14:56:43 +08:00 真服了你们了 这么简单一个算法 自己随便折腾下就知道了 这玩意你完全可以根据自己需要改造一下 |