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.
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"
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
-
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. ↩