# 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 清空已存储的所有号码
参数名称 类型 必选 默认 描述
- - -