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.time
或key=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版)