flashytime / id-generator
基于 Apc 和 MySQL 的 ID 生成器
v1.0.0
2018-05-08 10:51 UTC
Requires
- php: >=5.6
- ext-apcu: *
Requires (Dev)
- phpunit/phpunit: ^5
This package is not auto-updated.
Last update: 2024-09-25 12:12:29 UTC
README
基于 Apc 和 MySQL 的 ID 生成器,可用于为分片 MySQL 表生成主键。
安装
- 在您的终端中运行 composer require 命令
composer require flashytime/id-generator
- 使用
id_generator.sql创建一个名为 'id_generator' 的 MySQL 表
CREATE TABLE `id_generator` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL COMMENT '名字', `current_id` bigint(20) unsigned NOT NULL COMMENT '当前最大ID', `step` int(11) unsigned NOT NULL COMMENT '步长', `length` int(11) unsigned NOT NULL COMMENT '缓存步长', PRIMARY KEY (`id`), UNIQUE KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ID生成器';
- 将配置目录中的
id-generator.php文件复制到config/id-generator.php
使用方法
$idGenerator = new \Flashytime\ApcIdGenerator\IdGenerator($config); $idGenerator->setTable('id_generator'); $id = $idGenerator->getId('test_name');
Laravel 和 Lumen
Laravel 5
在 config/app.php 中的 providers 数组中添加 ServiceProvider
'providers' => [ Flashytime\IdGenerator\Provider\LaravelIdGeneratorServiceProvider::class, ]
最后,通过 php artisan vendor:publish 发布配置文件。
Lumen
对于 Lumen,在您的 bootstrap/app.php 中添加以下内容
$app->register(Flashytime\IdGenerator\Provider\LumenIdGeneratorServiceProvider::class);
将配置目录中的 id-generator.php 文件复制到 config/id-generator.php
并在 bootstrap/app.php 中添加以下内容
$app->configure('id-generator');
使用方法
app('id-generator')->setTable('id_generator'); $id = app('id-generator')->getId('test_name');
许可证
MIT