# number-pool
**Repository Path**: 3433/number-pool
## Basic Information
- **Project Name**: number-pool
- **Description**: 订单号码池
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-04-30
- **Last Updated**: 2021-01-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# number-pool
#### 介绍
订单号码池,利用Redis提前生成一批订单号存入list,根据使用量自动调整单号预存数量
毫秒时间戳(13)-数据中心(2)-机器码(3)-序列号(4)
> 例:1588128483000-55-666-0000
理论单机450万/单机
#### 使用说明
```php
getOne();
echo $trade_no;
# 输出 1588263158691000000076
// 切换到数据库2、数据中心2、机器码2 获取
$trade_no = NumberPool::db(2)->center(2)->worker(2)->getOne();
echo $trade_no;
# 输出 1588263158693020020688
// 初始化配置,切换到数据库3、数据中心3、机器码2 获取
$options = [
'host' => '127.0.0.1',
'port' => 6379,
'password' => '',
'select' => 0, // 选择数据库
'prefix' => 'redisNumberPool', // 前缀
];
$numberPool = NumberPool::getInstance($options);
$trade_no = $numberPool->center(3)->worker(2)->getOne();
echo $trade_no;
# 输出 1588263158696030020025
?>
```
#### 接口
> getInstance 获取单例
| 参数名称 |
类型 |
必选 |
默认 |
描述 |
| option |
Array |
否 |
|
基础配置 |
| option[host] |
String |
否 |
127.0.0.1 |
Redis 服务器 |
| option[port] |
Int |
否 |
6379 |
Redis 端口 |
| option[password] |
String |
否 |
127.0.0.1 |
Redis 密码 |
| option[select] |
int |
否 |
0 |
Redis 指定数据库 |
| option[prefix] |
String |
否 |
redisNumberPool |
Redis key前缀 |
> db 切换数据库
| 参数名称 |
类型 |
必选 |
默认 |
描述 |
| id |
Int |
否 |
0 |
切换到指定数据库 |
> center 切换数据中心
| 参数名称 |
类型 |
必选 |
默认 |
描述 |
| id |
Int |
否 |
0 |
切换到指定数据中心 0~99 |
> worker 切换机器码
| 参数名称 |
类型 |
必选 |
默认 |
描述 |
| id |
Int |
否 |
0 |
切换到指定机器码 0~999 |
> getOne 获取一个号码
| 参数名称 |
类型 |
必选 |
默认 |
描述 |
| 无 |
- |
- |
- |
- |
> getMultiple 获取一组号码
| 参数名称 |
类型 |
必选 |
默认 |
描述 |
| number |
Int |
是 |
- |
指定获取数量 |
> flush 清空已存储的所有号码