雪花算法

✍ dations ◷ 2025-11-14 23:45:26 #雪花算法

雪花算法(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位元表示序列号。

相关

  • 通古斯语族满-通古斯语族(又称通古斯语系或通古斯-满语族)是世界主要语系之一,其下又分满语支和通古斯语支。通古斯语支的语言有长元音,满语支的语言复元音多;辅音的组合一般不超过两个音素,
  • 欧洲一体化欧洲一体化是指欧洲整体或部分地区在政治、法律、经济、社会、文化等领域统合的历史。现代欧洲统合主要由欧洲联盟和欧洲委员会推动进行。最初提出欧洲统合构想的是理察·尼
  • 皆伐皆伐(英语:Clearcutting)是林业和伐木业采取的一种方法,指一致地伐光一个区域内的大部分或全部林木。这一方法和渐伐和母树一道,被林务员用来创造特定类型的森林生态系统,和保护指
  • 陈江华陈江华(1989年3月12日-),广东番禺人,中国篮球运动员,司职控球后卫。曾效力中国篮球职业联赛的广东华南虎篮球俱乐部。出生于广东省番禺县沙湾(今广州市番禺区沙湾街道涌口村)。在200
  • 江西人口江西人口是指目前拥有江西省户籍的全部人口,即2007年的4339.13万拥有在赣户籍的个人, 其中99.73%的人口都为汉族户籍,该比率为中国诸省最高。根据《江西统计年鉴 2007》的资料,
  • 加速规加速规(英语:accelerometer),又称加速计、加速针、加速度传感器、重力加速度传感器等等,是测量加速度的设备。相对于远距感测的设备,它测量的是自身的运动。加速规种类多样,其常用
  • 志贺町志贺町(日语:志賀町/しかまち  */?)为与位于能登半岛中央的町,北陆电力的志贺核电厂位于该町。面积246.54平方公里,总人口18,700人。2005年9月1日,旧志贺町与富来町新设合并新志
  • 创造神话《创造神话》(英语:Mythopoeia)是英国作家J·R·R·托尔金的诗作,灵感来自1931年9月19日在牛津大学莫德林学院与C·S·路易斯和雨果·戴森的一番长谈,记录了当时的谈话内容。在该
  • 1640年
  • 扬·阿列克谢扬·阿列克谢(罗马尼亚语:Ion Alexe,1946年7月25日-),罗马尼亚男子拳击运动员。他曾代表罗马尼亚参加1968年和1972年夏季奥林匹克运动会拳击比赛,其中1972年奥运会获得一枚银牌。