Guias

Coloque resultados de geocodificação em cache sem bagunçar o cálculo da sua cota

Geocodificar o mesmo endereço duas vezes na mesma semana é um padrão comum, e um cache é a solução óbvia. O que costuma confundir as pessoas é esquecer que um acerto e uma falha de cache parecem idênticos para a sua aplicação, mas são muito diferentes para a sua cota.

O que é seguro colocar em cache

Um endereço geocodificado raramente muda, então colocar em cache o resultado completo de uma consulta direta ou reversa, usando a entrada normalizada como chave, é seguro por muito tempo, semanas ou meses, dependendo de quanto seus dados de endereço mudam. O resultado de uma consulta de IP pode ficar em cache por períodos mais curtos, já que as faixas ocasionalmente são reatribuídas. O identificador de uma consulta de fuso horário é estável, mas o utc_offset muda com o horário de verão, então guarde o identificador em cache e recalcule o deslocamento em vez de guardar a resposta inteira indefinidamente.

Servir a partir do cache não afeta a cota

Um acerto de cache significa que você nem chamou a API para aquela requisição, então nada muda no X-Quota-Used nem no seu saldo de crédito. Esse é justamente o objetivo do cache, mas também significa que um acerto de cache não aparece em nenhum lugar nos cabeçalhos de cota, que refletem apenas as chamadas que realmente chegaram à API. Não tente conciliar seus próprios contadores de requisições com os cabeçalhos de cota, a menos que você também esteja registrando os acertos de cache separadamente.

Exemplo de chave de cache

cache_key = "forward:" + normalize("221B Baker Street, London")

Normalize convertendo para minúsculas, removendo espaços nas pontas e reduzindo espaços repetidos antes de gerar o hash, para que diferenças triviais de formatação na entrada não causem falhas de cache desnecessárias.

Dimensionando as expectativas

Se metade dos endereços recebidos se repete dentro de uma janela de cache, sua contagem efetiva de requisições contra a cota gratuita e qualquer crédito pré-pago é aproximadamente metade do seu volume bruto de endereços. Vale saber disso antes de decidir se você precisa ir além das 2.500 requisições gratuitas por dia incluídas em cada chave, já que o número real que chega à API pode ser bem menor do que o seu tráfego bruto sugere.

Quando ignorar o cache

Ignore o cache sempre que um resultado desatualizado estiver efetivamente errado, como ao verificar novamente um endereço que um cliente acabou de corrigir. Uma única consulta nova custa uma requisição de qualquer forma, então ignorar o cache para uma correção específica é um seguro barato contra servir um resultado em cache que você já sabe que está errado.

Fazer um bom cache é, sobretudo, saber quais campos são estáveis e quais não são, em vez de guardar tudo ou nada. Consulte a documentação de geocodificação direta para ver os campos que dão boas chaves de cache.