Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать преобразование строка->лонг? / 11 сообщений из 11, страница 1 из 1
22.06.2015, 18:01
    #38989992
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
Суть в следующем:

Хочу заюзить Redis в качестве кэша, но в качестве ключа получается длинная строка, может быть даже до 1024 байт, грубо говоря.

Как строить быстрый хэш по таким строкам длиной до 2К?
Но хотелось бы, чтобы однозначный.
...
Рейтинг: 0 / 0
22.06.2015, 18:02
    #38989994
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
Написал, но потом сильно начал думать

лонг не обязательно, может быть строка, лишь бы короче оригинальной.
...
Рейтинг: 0 / 0
22.06.2015, 18:04
    #38989997
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
Winnipuh, а почему именно строка? Чем Guid не устроил?
...
Рейтинг: 0 / 0
22.06.2015, 19:06
    #38990038
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
Winnipuhно в качестве ключа получается длинная строка, может быть даже до 1024 байт
а не преждевременна ли оптимизация?
...
Рейтинг: 0 / 0
22.06.2015, 19:23
    #38990050
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
AxeleronWinnipuh, а почему именно строка? Чем Guid не устроил?

приложение формирует строку:

key=строка1 field value
key=строка2 field value
..
key=строкаN field value

И строки могут быть(!) длинными. Вот я и пытаюсь как-то сплющить. Но нужно, чтобы другое приложение для запроса из кэша по той же строке сфромировало такую же соответствующую хэш строку.

ключ - это сборняк скажем такой:
[sql server:database name:username:query]

а в качестве значения надо хранить результат поискового запроса.
Вот из за query может быть длинным ключ
...
Рейтинг: 0 / 0
22.06.2015, 19:24
    #38990051
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
ИзопропилWinnipuhно в качестве ключа получается длинная строка, может быть даже до 1024 байт
а не преждевременна ли оптимизация?

правильно, но с другой стороны - а когда?
редисы рекомендуют чтобы ключ был покороче.
я описал в пред посту, что за ключи.
...
Рейтинг: 0 / 0
22.06.2015, 20:02
    #38990085
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
Winnipuhправильно, но с другой стороны - а когда?
когда проблемы начнутся с памятью или временем выборки

вот тогда и прикручивай MD5 или SHA2
...
Рейтинг: 0 / 0
22.06.2015, 20:19
    #38990092
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
если речь идет про базу данных, то там есть функции для получения CRC как вариант
...
Рейтинг: 0 / 0
22.06.2015, 21:05
    #38990115
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
ИзопропилWinnipuhправильно, но с другой стороны - а когда?
когда проблемы начнутся с памятью или временем выборки

вот тогда и прикручивай MD5 или SHA2

ок, согласен, это вариант 1.
Но извечная тяга к знаниям движет мною
...
Рейтинг: 0 / 0
22.06.2015, 21:22
    #38990123
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
Winnipuh,

коллизий в SHA2 опасаешься?
...
Рейтинг: 0 / 0
23.06.2015, 11:12
    #38990437
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать преобразование строка->лонг?
ИзопропилWinnipuh,

коллизий в SHA2 опасаешься?

ну, не знаю, в моем случае нужно 1:1, при коллизиях можно было бы в SQL Server выбрать и потом еще раз выбрать, а в redis не разгонишься, надо точный ключ указывать.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать преобразование строка->лонг? / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]