sql >> Database >  >> NoSQL >> MongoDB

Een hex-tekenreeks comprimeren in Ruby/Rails

Je zou een hexadecimaal ID kunnen vertegenwoordigen in een grondtal hoger dan 16 om de tekenreeksrepresentatie korter te maken. Ruby heeft ingebouwde ondersteuning voor het werken met bases van 2 tot 36 .

b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"

Om het terug te converteren naar een tekenreeks van 24 tekens, zou je zoiets als dit kunnen doen:

'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"

Om een ​​betere "compressie" te bereiken, zou u de id in base hoger kunnen weergeven dan 36 . Er zijn Ruby-bibliotheken die je daarbij kunnen helpen. all-your-base gem is zo'n bibliotheek.

Ik raad basis 62 aan representatie omdat het alleen 0-9 . gebruikt , a-z en A-Z tekens, wat betekent dat het standaard URL-veilig is.



  1. Memcached installeren op Ubuntu 16.04/18.04 met Nginx en PHP-7.3

  2. Hoe Meteor Upsert te gebruiken

  3. Meteor $en met $of

  4. Inleiding tot Apache HBase-snapshots, deel 2:diepere duik