PHPackages                             tengzbiao/php-snowflake - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tengzbiao/php-snowflake

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

tengzbiao/php-snowflake
=======================

A package for create unique id by snowflake

13PHPCI failing

Since Mar 1Pushed 6y agoCompare

[ Source](https://github.com/tengzbiao/php-snowflake)[ Packagist](https://packagist.org/packages/tengzbiao/php-snowflake)[ RSS](/packages/tengzbiao-php-snowflake/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (1)Used By (0)

snowflake
---------

[](#snowflake)

Twitter雪花算法PHP版本

生成规则
----

[](#生成规则)

64位标识唯一ID

> 第一位0 - 41位毫秒级时间戳 - 2位数据中心ID - 6位机器ID - 2位扩展位 - 12位毫秒内顺序ID

概述
--

[](#概述)

- php-fpm多进程并发导致ID重复，使用基于信号量代替文件锁和redis锁
- ID趋势递增
- 支持4个数据中心、64台机器
- 每毫秒最多可生成4096个ID

使用
--

[](#使用)

- 安装sysvsem和sysvshm扩展(以php-7.1.13版本为例)

```
# cd php-7.1.13/ext/sysvsem
# phpize
# configure
# make && make install

# cd php-7.1.13/ext/sysvshm
# phpize
# configure
# make && make install

在php.ini增加、然后重启php-fpm
extension=sysvsem.so
extension=sysvshm.so

```

- composer require tengzbiao/php-snowflake

```
