跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有大佬用过 Python 版本的雪花算法生成 id 吗?我在网上找到的版本,随机生成产生重复的概率太大了
未分類
30 3 月 2020

有大佬用过 Python 版本的雪花算法生成 id 吗?我在网上找到的版本,随机生成产生重复的概率太大了

有大佬用过 Python 版本的雪花算法生成 id 吗?我在网上找到的版本,随机生成产生重复的概率太大了

資深大佬 : kayseen 25

如题, 在网上找到的代码链接

https://blog.csdn.net/weixin_39767528/article/details/82595841

大佬有話說 (18)

  • 主 資深大佬 : kayseen

    我是单机使用, 如果两个用户在同一毫秒申请这个编码,因为依赖时间的关系是一定会重复吗?

  • 資深大佬 : aec4d

    都懒得看 CSDN 就知道怎么回事儿。理解原理才行,是不可能重复的,除非是多线程,多进程或者分布式环境,这种情况并发高一定会有重复。可以搞一个中心化发号器杜绝重复

  • 資深大佬 : MinQ

    @kayseen 是的,多线程的话可能会导致 count 出现脏读脏写,建议给 count 加锁

  • 資深大佬 : MinQ

    @aec4d 单机用加个锁拉倒了吧?

  • 資深大佬 : banxi1988

    推荐一个视频 ,对 snowflake 算法有说明. Python 实现的.
    https://www.bilibili.com/video/BV1TJ411D7Cw/

  • 資深大佬 : lhx2008

    这玩意肯定是在 pip 或者 github 上面找个多人用的库

  • 資深大佬 : gclm

    时钟回拨。确实会重复,可以其他算法生成 ID

  • 資深大佬 : superrichman

    可以考虑用 redis 的 incr 来生成 id

  • 資深大佬 : keshawnvan

    你可以参考一下我的实现,有解决时钟回拨
    https://www.yuque.com/kaixiang-jinoo/gtspek/mft5gx

  • 主 資深大佬 : kayseen

    @keshawnvan 刚看了下你写的几篇文章真太好了,可惜看不懂 JAVA

  • 主 資深大佬 : kayseen

    @superrichman
    谢谢提供思路,之前有考虑过,觉得雪花算法不依赖数据库挺好的哈哈

  • 主 資深大佬 : kayseen

    @aec4d
    嗯嗯,谢谢回复

  • 主 資深大佬 : kayseen

    @banxi1988
    十分感谢!这个视频讲的确实很不错,学习了!

  • 主 資深大佬 : kayseen

    @lhx2008
    唉,说起来你可能不信,我在 github 上没有找到 python 版本用的人多的

  • 主 資深大佬 : kayseen

    @gclm
    找了好久都是推荐雪花算法,请问还有其他什么方案生成啊?

  • 資深大佬 : keshawnvan

    @kayseen 看懂原理自己实现以下就可以了

  • 資深大佬 : TransAM

    不加锁也可以,每个线程维护自己的计数器,机器 id 后面插入 tid 。

  • 資深大佬 : cz5424

    上线至今没遇到重复的

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具