Twitter 的 Snowflake UUID 生成器是不是有 Python 实现?

Posted

技术标签:

【中文标题】Twitter 的 Snowflake UUID 生成器是不是有 Python 实现?【英文标题】:Is there a Python implementation of Twitter's Snowflake UUID generator?Twitter 的 Snowflake UUID 生成器是否有 Python 实现? 【发布时间】:2012-07-23 21:32:18 【问题描述】:

我需要一个顺序 UUID 生成器,例如 Twitter 的 Snowflake - https://github.com/twitter/snowflake/。

但是 Snowflake 是在 Scala 中实现的,我在 Python 世界中找到了一个类似的项目,而不是 Scala。

【问题讨论】:

【参考方案1】:

天哪,我发现了这个:https://github.com/erans/pysnowflake

【讨论】:

【参考方案2】:

你可以在Python uuid module找到你需要的东西

【讨论】:

感谢您的评论。但我不认为 python uuid 给出了我想要的相同或相似的结果。见***.com/questions/8713873/… @lqez 你知道当前版本的 Python 允许你提供一个用于排序的关键函数吗?如果您使用uuid1() 或其他包含时间戳的函数来创建您的UUID,您应该能够在您使用的任何排序系统的参数中包含key=lambda id: id.timekey=operator.attrgetter('time'),并且完全没有问题。如果所有其他方法都失败并且您使用的是 Python 3.2,您可以继承 uuid.UUID 并使用 functools.total_ordering() 进行设置。 (当然,您仍然可以使用早期版本的 Python 进行子类化,只是需要更多代码,因为您必须手动定义所有比较函数。)【参考方案3】:

看这个:https://github.com/Madscientiste/Snowflake 我知道它仍在开发中,但对于寻找 twitter 雪花之类的东西的人来说,它可能很有用。

【讨论】:

以上是关于Twitter 的 Snowflake UUID 生成器是不是有 Python 实现?的主要内容,如果未能解决你的问题,请参考以下文章

Twitter的分布式自增ID算法snowflake (Java版)

Twitter的分布式自增ID算法snowflake (Java版)

Twitter的分布式自增ID算法snowflake (Java版)

Twitter的分布式自增ID算法snowflake (Java版)

Twitter的分布式自增ID算法snowflake (Java版)

雪花算法Twitter的分布式自增ID算法snowflake (Java版)