2016-06-06 3 views
0

uuid или универсальный уникальный идентификатор и timeuuid - длинное 128-битное значение.Как сжать uuid и timeuuid?

В базе данных Cassandra и из-за ее понятий я использовал UUID и timeuuid для наших сущностей идентификатора и теперь я хочу, чтобы сжать UUID и timeuuid или уменьшить его размер, когда клиент (пользователь) может видеть id в строке URL.

Например Twitter также используется Кассандра, но при открытии чирикать, идентификатор твит является как 10153967535312713 но простой UUID, как 10646334-2c02-11e6-bb4a-7720eb141b83, который больше символов, а не для пользователя (конечно, оба идентификаторы не дружественный к пользователю : D)

в разных языках программирования существуют некоторые функции сжатия, такие как gzcompress в PHP и GZIPOutputStream в Java, но эти функции (классы) будут сжимать данные и вернуться в формате GZIP, который не имеет права использовать в URL!

Теперь, кстати, есть ли способ или функция/алгоритм для получения меньшей или сжатой версии uuid или timeuuid?

+2

UUID чрезвычайно маловероятны сжимаемостью - вы не можете сжимать случайные данные, а UUID обычно рандомизированы. (И любые более короткие случайные данные имели бы соответственно большую вероятность того, что они фактически не уникальны). –

ответ

3

Твиттер изначально был разработан Snowflake давным-давно, и я считаю, что именно этот идентификатор используется Twitter. Доступны теперь many flake id implementations, которые могут генерировать номер UUID, а не истинный UUID. Я использовал Flake Java в моем проекте.

Смежные вопросы