Pular para o conteúdo principal

Cache central

Logto suporta o uso do Redis®1 como um cache central para dados bem conhecidos. Ao usar um cache central, o Logto pode acelerar significativamente a experiência do usuário final, reduzindo o número de consultas ao banco de dados necessárias para gerar uma resposta.

Normalmente, o cache pode ser tornado público, pois é projetado apenas para dados bem conhecidos. Atualmente, o Logto não armazena nenhum dado que exija autenticação ou autorização.

nota

Para garantir as melhores práticas de segurança, ainda aconselhamos limitar o acesso ao cache.

Configurar a conexão

Para habilitar o cache, você precisará de uma instância do Redis 6.0 que esteja em funcionamento. Para que o Logto se conecte e use o cache, basta definir a variável de ambiente REDIS_URL para a string de conexão do Redis, que deve começar com o protocolo "redis" (redis://) para conexões não seguras, ou o protocolo "redis" (redis://) para conexão via TLS.

Por exemplo:

REDIS_URL=redis://your-redis-username:[email protected]:6380

Observe que a maioria das partes da string de conexão pode ser omitida, como mostrado no exemplo abaixo, que compõe uma string de conexão sem o nome de usuário e porta, usando o protocolo "redis":

REDIS_URL=redis://:[email protected]

Se a senha contiver caracteres especiais, ela precisa ser codificada em URI:

# Se a senha for "foo="
REDIS_URL=redis://:foo%[email protected]

Nos casos em que todos os valores padrão estão em uso, você pode definir a variável para um valor verdadeiro para conveniência:

REDIS_URL=1 # ou "true", "yes"
nota

A string StackExchange.Redis não é suportada.

Verificar se o cache está funcionando

Para verificar se o cache está devidamente conectado, você deve ver a seguinte mensagem exibida quando o Logto iniciar:

[CACHE] Connected to Redis

Além disso, quando a solicitação atingir o cache (por exemplo, acessando GET /api/.well-known/phrases várias vezes), a seguinte mensagem aparecerá no console:

[CACHE] Well-known cache hit for ...

Footnotes

  1. Redis é uma marca registrada da Redis Ltd. Quaisquer direitos sobre ela são reservados à Redis Ltd. Qualquer uso por Silverhand é apenas para fins de referência e não indica qualquer patrocínio, endosso ou afiliação entre Redis e Silverhand.