arrow

назад

ask

Вопрос

Как генерировать уникальные хеши (например, 50к в день), выдавать их пользователям, хранить в бд и делать это быстро?

repost

593

input message

напишите коммент


13 комментов

Uuid, ulid, прочие ключи на основе времени

0

ответить

А в чем именно сложность? Взять алгоритм мур-мур и генерить хэши, хранить в БД.

0

ответить

Например, если большой наплыв не будет ли проблем в моменте генерировать тысячи хэшей и записывать в бд?

0

ответить

Если много пользователей, то сервис генерации хэшей может скейлиться в зависимости от метрики пользователей. Тем самым генерация хэшей будет параллельно происходить. Запись в БД не будет проблемой. При этом важно учитывать от чего считается хэш. Если текст в несколько мб, то мур-мур справится и без скейла.

0

ответить

· 20.06.2024

uuid?

0

ответить

фоново вычислять хэш для предыдущего хэша не подходит?

0

ответить

· 20.06.2024

Хотите стать удаленьщиком? Присоединяйтесь в сообщество https://setka.ru/communities/019034c9-6e64-4146-87b9-1eb92b6cc79c

0

ответить

УдаленЬщиком?

0

ответить

· 20.06.2024

Быстро будет в tarantool для такой задачи. И персистентно и скорость кеша.

0

ответить

Tarantool как понял - аналог redis, тоже in memory бд. Как раз хочу генерировать хеши (пока это обычный конверт primary key из bd в base64) и хранить в redis. Грубо говоря автономно генерируются пустые сущности в бд, но с готовым хеш. В redis хранятся условные 1к записей с этими же хеш на бд, но где еще нет owner. Выдается на клиент. В бд записывается owner.

Правильно ли я думаю о логике?) у меня первый пост в ленте, там рассказал что делаю

0

ответить

Кажется что так, если условно, 10к пользователей захочет себе короткую ссылку, сервер уже будет готов к этому 🤔

0

ответить

· 20.06.2024

Проблема хэша, что он не может быть абсолютно уникальным, но можно уменьшать количество коллизий.

0

ответить

· 20.06.2024

еще контент автора

пост закреплён — пока закрепить можно только один пост

trash bin
перейти к нему не получится