Это вопрос не на то чтоб код писать, а на рассуждения, код же никто тебе не предлагает писать
В общем это превращение ключей в ноды графа по которому ты идешь
Определяешь себе узлы и просто спускаешься, упрощенный вариант (иерархическое дерево ключей):
1.111111111 и 1.111111112
Сперва берем узел до точки, например по 3 значения:
1./1. - кеш хит (логично до плавающей запятой брать как есть)
.111/.111 - кеш хит
111/111 - кеш хит
111/112 - хоба кеш мисс, запоминаем значение
Все это выстраивается в правильную структуру и у тебя происходит минимальный процессинг и быстрый ответ с учетом кеширования, вот тебе пример структуры под это дело, то что было реально использовано для решения задачи:
https://ru.wikipedia.org/wiki/%D0%94...82%D0%BE%D0%B2
Сюда же всякие там cache compression, geohashing и так далее
Вот только у тебя подобных проблем и нюансов происходит куча каждый день, с совершенно разными истоками и областями
Все еще думаешь что разработчикам платят чтоб бабло пилить?