中央缓存
Logto 支持使用 Redis®1 作为已知数据的中央缓存。通过使用中央缓存,Logto 可以显著加快终端用户的体验,减少生成响应所需的数据库查询次数。
通常,缓存可以公开,因为它仅用于已知数据。目前,Logto 不存储任何需要认证 (Authentication) 或授权 (Authorization) 的数据。
备注:
为了确保最佳的安全实践,我们仍然建议限制对缓存的访问。
配置连接
要启用缓存,你需要一个正在运行的 Redis 6.0 实例。为了让 Logto 连接并使用缓存,只需将 REDIS_URL
环境变量设置为 Redis 连接字符串,该字符串应以 "redis" 协议 (redis://
) 开头用于非安全连接,或 "redis" 协议 (redis://
) 用于通过 TLS 连接。
例如:
REDIS_URL=redis://your-redis-username:[email protected]:6380
请注意,连接字符串的大部分内容可以省略,如下例所示,该示例使用 "redis" 协议构建了一个没有用户名和端口的连接字符串:
REDIS_URL=redis://:[email protected]
如果密码包含特殊字符,则需要进行 URI 编码:
# 如果密码是 "foo="
REDIS_URL=redis://:foo%[email protected]
在所有默认值都在使用的情况下,你可以将变量设置为一个真值以方便使用:
REDIS_URL=1 # 或 "true", "yes"
备注:
不支持 StackExchange.Redis 字符串。
检查缓存是否正常工作
要检查缓存是否正确连接,你应该在 Logto 启动时看到以下消息:
[CACHE] Connected to Redis
此外,当请求命中缓存时(例如,通过多次访问 GET /api/.well-known/phrases
),控制台中将出现以下消息:
[CACHE] Well-known cache hit for ...
Footnotes
-
Redis 是 Redis Ltd. 的注册商标。Redis Ltd. 保留其中的任何权利。Silverhand 的任何使用仅为参考目的,并不表示 Redis 与 Silverhand 之间的任何赞助、认可或关联。 ↩