雪花算法

✍ dations ◷ 2025-09-13 01:16:46 #雪花算法

雪花算法(Snowflake)是一种生成分布式全局唯一ID的算法,生成的ID称为Snowflake IDs或snowflakes。这种算法由Twitter创建,并用于推文的ID。Discord和Instagram等其他公司采用了修改后的版本。

一个Snowflake ID有64位元。前41位是时间戳,表示了自选定的时期(英语:Epoch_(computing))以来的毫秒数。 接下来的10位代表计算机ID,防止冲突。 其余12位代表每台机器上生成ID的序列号,这允许在同一毫秒内创建多个Snowflake ID。最后以十进制将数字序列化。

SnowflakeID基于时间生成,故可以按时间排序。 此外,一个ID的生成时间可以由其自身推断出来,反之亦然。该特性可以用于按时间筛选ID,以及与之联系的对象。

2022年六月由@Wikipedia所发的一条推文的雪花ID是1541815603606036480。这个数字被转换成二进制就是0b 0001 0101 0110 0101 1010 0001 0001 1111 0110 0010 00|01 0111 1010|0000 0000 0000,其中以竖线分隔成三个部分。

这个格式最初由Twitter在2010年宣布。由于实现上的困难,他们在该年稍晚才推出更新。Twitter对推文、私讯、用户、列表和其他可透过API存取的对象使用雪花ID。

Discord同样也使用雪花ID,纪年则从2015年的第一秒开始。

Instagram使用了修改后的版本,其中41位元用作时间戳,13位元用于表示分片(Shard)ID,10位元表示序列号。

相关

  • Wiki引擎Wiki引擎,或称为Wiki软件,是指用来架设Wiki的软件。广义来说,即是一种软件能作为网络共笔,供网民自行编辑,并最终集合成完整的数据库。狭义来说,即是能达成维基百科样式的软件。由
  • 蔷薇果蔷薇果是果实的一种类型,属于聚合果,常见于蔷薇科植物。蔷薇果由若干瘦果聚集着生于凹陷的花萼中形成。聚合瘦果是与蔷薇果类似的另一类果实,它是由若干瘦果聚集着生于突起的花
  • 伊朗海军伊朗伊斯兰共和国海军(波斯语:نیروی دریایی جمهوری اسلامی ایران‎)简称伊朗海军,是伊朗伊斯兰共和国的海上军事力量的重要组成部分,拥有兵员约2万
  • 梅赛德斯·索萨艾蝶伊·梅赛德斯·索萨(西班牙语:Haydée Mercedes Sosa,1935年7月9日-2009年10月4日),生于阿根廷圣米格尔-德图库曼,民谣歌手,被人称为黑女士(西班牙语:La Negra),是阿根廷新民歌运动(
  • 彼得·尼古拉耶维奇·费多谢耶夫彼得·尼古拉耶维奇·费多谢耶夫(俄语:Пётр Никола́евич Федосе́ев,1908年8月22日(9日)-1990年10月18日)苏联哲学家,社会学家和社会活动家,勃列日涅夫统治时
  • 高爱理高爱理(英语:Ailie May Spencer Gale,1878年-1958年3月27日),美国医生,1908至1950年间,和丈夫高福绥(英语:Francis Clair Gale)一起作为美以美会传教士在中国服务。高爱理1878年出生于
  • 澳门葡文学校澳门葡文学校(葡萄牙语:Escola Portuguesa de Macau)是澳门现时仅存的一所以葡萄牙国家教育制度及葡萄牙语为教学语言的全日制普通学校。基于澳门的教育及至19世纪中主要是由天
  • 苏美尔神话苏美尔神话是古代苏美尔的人民所信奉的宗教神话故事。苏美尔是古代美索不达米亚地区第一个有文字的文明。苏美尔人视其神祇为与自然和社会秩序有关的一切事物的掌管者。 在
  • 肖绪文肖绪文(1953年4月13日-),陕西山阳人,中国建筑施工领域专家。1977年毕业于清华大学土木工程系。2013年当选为中国工程院院士。
  • 奈杰尔·邦德奈杰尔·邦德(Nigel Bond,1965年11月15日-),是一名英格兰职业斯诺克选手,出生于德比郡达利戴尔。邦德自1989年以来一直参加主巡回赛,并在1992年至1999年间排名世界前16名,在1996/1997赛季达到第5名。他在1995年进入世界斯诺克锦标赛决赛,以9比18输给了史蒂芬·亨德利。他赢得了1996年英国公开赛,以9比8击败约翰·希金斯。在参加了其他三场排名赛的决赛之后,邦德赢得了2011年的斯诺克单局限时赛,并在2012年击败托尼·查佩尔赢得世界元老锦标赛冠军。他在2015年之前保