Caché central
Logto admite el uso de Redis®1 como caché central para datos bien conocidos. Al utilizar una caché central, Logto puede acelerar significativamente la experiencia del usuario final al reducir el número de consultas a la base de datos necesarias para generar una respuesta.
Normalmente, la caché puede hacerse pública ya que está diseñada solo para datos bien conocidos. En la actualidad, Logto no almacena ningún dato que requiera autenticación o autorización.
Para garantizar las mejores prácticas de seguridad, aún aconsejamos limitar el acceso a la caché.
Configurar la conexión
Para habilitar la caché, necesitarás una instancia de Redis 6.0 que esté en funcionamiento. Para que Logto se conecte y use la caché, simplemente configura la variable de entorno REDIS_URL
con la cadena de conexión de Redis, que debe comenzar con el protocolo "redis" (redis://
) para conexiones no seguras, o el protocolo "redis" (redis://
) para conexiones sobre TLS.
Por ejemplo:
REDIS_URL=redis://your-redis-username:[email protected]:6380
Ten en cuenta que la mayoría de las partes de la cadena de conexión pueden omitirse, como se muestra en el ejemplo a continuación, que compone una cadena de conexión sin el nombre de usuario y el puerto, utilizando el protocolo "redis":
REDIS_URL=redis://:[email protected]
Si la contraseña contiene caracteres especiales, necesita ser codificada en URI:
# Si la contraseña es "foo="
REDIS_URL=redis://:foo%[email protected]
En casos donde se utilizan todos los valores predeterminados, puedes configurar la variable a un valor verdadero para mayor comodidad:
REDIS_URL=1 # o "true", "yes"
La cadena StackExchange.Redis no es compatible.
Verificar si la caché está funcionando
Para verificar si la caché está conectada correctamente, deberías ver el siguiente mensaje cuando Logto se inicie:
[CACHE] Connected to Redis
Además, cuando la solicitud impacta en la caché (por ejemplo, al acceder a GET /api/.well-known/phrases
varias veces), aparecerá el siguiente mensaje en la consola:
[CACHE] Well-known cache hit for ...
Footnotes
-
Redis es una marca registrada de Redis Ltd. Todos los derechos están reservados a Redis Ltd. Cualquier uso por parte de Silverhand es solo para fines de referencia y no indica ningún patrocinio, respaldo o afiliación entre Redis y Silverhand. ↩