Как я могу уменьшить размер memcached ключа, используя кодировку base64?

Здесь вы можете прочитать:

64-битные UID - это умные способы идентификации пользователя, но они плохо работают при распечатке. 18446744073709551616. 20 символов! Используя кодировку base64, или даже просто шестнадцатеричное, вы можете сократить это довольно много

но насколько я знаю, 18446744073709551616 приведет к большей строке, если закодирован с использованием Base64. Я знаю, что я что-то упускаю, потому что эти memecached люди умны, и в документе они неоднократно упоминали, что использование кодировки Base64 может быть полезно для улучшения ключа перед его сохранением в memcahed. Как так?

2 ответа

Решение

То, на что вы смотрите, - это в основном десятичное представление 64 бит. Вероятно, они говорят о кодировании базовых битов непосредственно в Base64 или шестнадцатеричное, вместо кодирования десятичного представления битов. По сути, они просто говорят о размерах алфавита. Чем больше алфавит, тем короче строка:

64 бита в битах (алфавит 2, 0 или же 1) 64 символа
64 бита в десятичном виде (алфавит 10, 0 - 9) 20 символов
64 бита в шестнадцатеричном формате (алфавит 16, 0 - F) 16 символов
так далее...

Не угрожайте UID как строку, используйте 64-битное числовое представление. Это занимает ровно 64 бита или 8 байтов. Кодирование 8 байтов с использованием шестнадцатеричного числа приведет к строке, подобной "FF1122EE44556677" - 16 байтов. Используя кодировку base64, вы получите еще более короткую строку.

Другие вопросы по тегам