随机字符和可选日期时间的唯一ID。
uqid的Python项目详细描述
UQID:
pip install uqid from uqid import uqid, digits print(uqid()) # e7ljCIs4grYZ9tOv6bpX3TQIA7FyA23umzGjDcIjHff2XwF2ziAw56B7S3EdOuCA print(uqid(4, digits)) # 4982
- 从随机字符返回唯一ID。
- 默认值是64个字符0-9a-za-z aka base62。
DTID:
pip install uqid from uqid import dtid print(dtid()) YYYYMMDDhhmmssmicrosrnd4 20161231235959123456uN1q
- 默认为24字节-作为str(objectid())。
- 但对人类友好-不像objectid。
- 微秒精确的UTC时间戳-与秒精确的objectid()不同。
- 可以从dtid()中提取datetime。
- 可按原样用作日志时间戳。
- 按字母顺序排列。
- 安全字符0-9a-za-z-与binary objectid()不同,如果添加到不带str()的json中,则会导致“valueerror:invalid utf-8 sequence length”。
- 基62^4每秒超过14m uniques。
- dtid(24)比uqid(24)快2倍,但比str(objectid())慢
测试:
python2 uqid.py python3 uqid.py SAMPLES: str(uuid4()): 3bb25137-2422-4d06-bd12-5a9de2ea2bf6 len(^): 36 len(v): 24 str(ObjectId()): 5acdcd1f9c591516ae800615 uqid(24): UFRFQVCtYu6rtQq8LD33XjI3 dtid(24): 20180411085351268116tHse Iterations: 1000000 python2 SECONDS: str(uuid4()) seconds: 11.825964 str(ObjectId()) seconds: 2.424702 uqid(24) seconds: 9.701306 dtid(24) seconds: 5.357983 python3 SECONDS: str(uuid4()) seconds: 5.826098 str(ObjectId()) seconds: 3.192565 uqid(24) seconds: 17.769653 dtid(24) seconds: 9.588677 DUPLICATES: str(uuid4()) duplicates: 0 str(ObjectId()) duplicates: 0 uqid(24) duplicates: 0 dtid(24) duplicates: 0