У нас есть таблица в нашей базе данных, которая имеет статический диапазон IP-адресов городов и их IP-адрес. Это выглядит примерно так:Как memcache или хранить пару значений ключа, когда ключ находится в диапазоне, а не одно значение?
IP-TO, IP-FROM, CITY
100, 110, A
111, 168, B
...
965, 1000, Z
Я упомянул образец данных. Реальные данные огромны с почти 64 тыс. Строк в таблице.
Для каждого пользователя на нашем веб-сайте мы определяем их город со своего IP-адреса, выполняя SQL-запрос на SQL-сервере.
Поскольку данные являются статическими, например, каждый пользователь с IP-адресом в диапазоне от 100 до 110 относится к городу A, мы без необходимости каждый раз ударяем базу данных.
Мы думали о кешировании каждого уникального посещения ip. Например: IP-100, отображенные на IP-101, отображенный на ... IP-110, отображенный на
Но это создало бы 64k ключи в кэше, и я чувствую, что нет смысла хранить кратному ключи, которые имеют такое же значение, когда мы знаем диапазон.
Можем ли мы как-то сделать это лучше, то есть с помощью минимального ключа кеша mem или с использованием другого подхода вообще?
В примере я вижу, есть разница в 10 в каждый диапазон IP. Всегда ли диапазон всегда имеет постоянное значение? –
Нет. Это всего лишь образец данных. Это не так. Я бы изменил это для большей ясности. – maverick