Documentation
¶
Overview ¶
Package unique 产生一个唯一字符串
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Rands ¶
type Rands struct {
// contains filtered or unexported fields
}
Rands 生成唯一的随机字符串
Rands 由两部分组成:
- Unique 负责保证字符串的唯一性,但是内容是有序的;
- rands.Rands 负责生成混淆的随机字符;
两者结合可以保证生成的内容唯一且无序。相较于 Unique 此对象更具有随机性。
func NewRands ¶ added in v2.1.0
NewRands 声明 Rands
bufferSize 负责初始化 Unique 和 rands.Rands 对象; r, min, max, bs 负责初始化 rands.Rands 对象;
type Unique ¶
type Unique struct {
// contains filtered or unexported fields
}
Unique 基于时间戳的唯一不定长字符串
Unique 由两部分组成: 前缀是由一个相对稳定的字符串,与时间相关联; 后缀是一个自增的数值。
每次刷新前缀之后,都会重置后缀的计数器,从头开始。 刷新时间和计数器的步长都是一个随机数。
NOTE: 算法是基于系统时间的。所以必须得保证时间上正确的,否则可能会造成非唯一的情况。 NOTE: 产生的数据有一定的顺序规则。
func New ¶
New 声明一个新的 Unique
每一秒,最多能产生 math.MaxInt64 个唯一值,需求量超过此值的不适合。
bufferSize 缓存大小,不能小于 1; duration 计数器的重置时间,不能小于 1*time.Second; prefixFormat 格式化 prefix 的方式,若指定,则格式化为时间,否则将时间戳转换为数值; base 数值转换成字符串时,所采用的进制,可以是 [2,36] 之间的值。
Click to show internal directories.
Click to hide internal directories.