У меня около 100 миллионов простых пар ключ-значение (это устаревшие данные, их не нужно обновлять, а клавиши - случайные строки), и я хочу их хранить в redis для запроса.Как сопоставить 100 миллионов строк в 100 тысяч int?
Я думал, что я использую первые четыре символа в качестве хэш-ключа и сохраняю их в хэш-тип, поэтому в redis есть около миллиона хэш-ключей, причем каждый хэш-ключ имеет около 1000 под-клавиш.
, но все просто не идет по плану. по какой-то причине я обнаружил, что некоторые хеш-ключи имеют только один под-ключ, но некоторые из них содержат более 500 000 под-клавиш, которые могут не кодироваться в памяти очень эффективно.
, так что я хотел бы знать, что есть какой-то простой понятный алгоритм, который может разделить мою 100-миллионную строку в среднем на 100 тысяч ведер (int). когда я беру строку, я могу знать, где она идет, используя тот же алгоритм.
спасибо !!
Как насчет использования Trie (https://en.wikipedia.org/wiki/Trie) для хранения всех ключей? – NMSL
Вы говорите, что некоторые префиксы появляются только один раз, в то время как другие происходят 500k раз? – FuzzyTree