跳到主要内容

中央缓存

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

  1. Redis 是 Redis Ltd. 的注册商标。Redis Ltd. 保留其中的任何权利。Silverhand 的任何使用仅为参考目的,并不表示 Redis 与 Silverhand 之间的任何赞助、认可或关联。