как сжать uuid и timeuuid?

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

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

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

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

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


person Mohammad Kermani    schedule 06.06.2016    source источник
comment
Очень маловероятно, что UUID можно сжимать — вы не можете сжимать случайные данные, а UUID обычно рандомизируются. (И любые более короткие случайные данные будут иметь соответственно более высокую вероятность того, что они на самом деле не уникальны.)   -  person Louis Wasserman    schedule 07.06.2016


Ответы (1)


Twitter изначально разработал Snowflake давным-давно, и я считаю, что именно этот идентификатор является Twitter все еще использую. В настоящее время доступно множество реализаций ненадежных идентификаторов, которые могут генерировать UUID. как число вместо истинного UUID. Я использовал Flake Java в своем проекте.

person stdunbar    schedule 06.06.2016