/PySnowflake-python-

当时python版本为python3.7,pip=19

Primary LanguagePython

PySnowflake-python-

当时python版本为python3.7, pip=19

数据中主键有多种方式:数据库自增、程序生成。程序生成一般采用的是snowflake 算法。这个算法在网上有很多解释,这里就不做过多的解释。

生成的id大致有以下组成:

Snowflake算法一般生成的每一个ID都是64位的整型数,它的核心算法也比较简单高效,结构如下:

41位的时间序列,精确到毫秒级,41位的长度可以使用69年。时间位还有一个很重要的作用是可以根据时间进行排序。

5位的数据中心标识,5位的长度最多支持部署32个节点。

8位的机器标识,8位的长度最多支持部署255个节点。

12位的计数序列号,序列号即一系列的自增id,可以支持同一节点同一毫秒生成多个ID序号,12位的计数序列号支持每个节点每毫秒产生4095个ID序号。

最高位是符号位,始终为0,不可用。 !注意:使用前看另一个.md有详解 根据生成规则和实际代码: (有关算法详解:https://segmentfault.com/a/1190000011282426#articleHeader2)