ulid() # 01ARZ3NDEKTSV4RRFFQ69G5FAV
01AN4Z07BY 79KA1307SR9X4MV3
|----------------|
Timestamp Randomness
10chars 16chars
48bits 80bits
0123456789ABCDEFGHJKMNPQRSTVWXYZ
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 32_bit_uint_time_high |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 16_bit_uint_time_low | 16_bit_uint_random |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 32_bit_uint_random |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 32_bit_uint_random |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
pip install ulid-py
> import ulid
> ulid.new()
<ULID('01BJQE4QTHMFP0S5J153XCFSP9')>
> import ulid, uuid
> value = uuid.uuid4()
> value
UUID('0983d0a2-ff15-4d83-8f37-7dd945b5aa39')
> ulid.from_uuid(value)
<ULID('09GF8A5ZRN9P1RYDVXV52VBAHS')>
> import datetime, ulid
1999, 1, 1)) > ulid.from_timestamp(datetime.datetime(
<ULID('00TM9HX0008S220A3PWSFVNFEH')>
> import os, ulid
10) > randomness = os.urandom(
> ulid.from_randomness(randomness)
'01BJQHX2XEDK0VN0GMYWT9JN8S')> > <ULID(
> import ulid
> u = ulid.new()
> u
<ULID('01BJQM7SC7D5VVTG3J68ABFQ3N')>
> u.timestamp()
<Timestamp('01BJQM7SC7')>
> u.randomness()
<Randomness('D5VVTG3J68ABFQ3N')>
如果字段的最大可能长度超过255字节,那么长度值可能…
只能说作者太用心了,优秀
感谢详解
一般干个7-8年(即30岁左右),能做到年入40w-50w;有…
230721