跳转到内容

缓存配置

目标:按你的部署方式,把 danmu_api 的缓存方式配好。

这页只讲缓存,不重复前面部署页已经写过的启动步骤。

  • 电脑本地 / 手机 Termux:建议先建 .cache 目录,让本地缓存能落盘;后面想再接 Redis,再单独配本地 Redis。
  • Docker:如果你是按 Docker 部署 页走的,.cache 已经挂载好了,这里不用再配一次。
  • Vercel / Netlify / Cloudflare Workers:如果你没有“记住上次选择”或“跨实例保留缓存”的需求,可以先不配 Upstash。
  • EdgeOne Pages:这条线必须配 Upstash。不补这一层共享缓存时,请求落到新的运行环境后,匹配弹幕很容易直接返回 404。

如果你是按前面的部署页走:

  • 电脑本地:项目目录通常是 %USERPROFILE%\danmu_api
  • 手机 Termux:项目目录通常是 $HOME/danmu_api

电脑本地可以先执行:

Terminal window
cd /d %USERPROFILE%\danmu_api
社区教程里在 Windows 打开命令提示符的截图
电脑本地这条线,先打开命令行,再回到 %USERPROFILE%\danmu_api

Termux 可以先执行:

Terminal window
cd $HOME/danmu_api

如果这里提示没有这个目录,就切到你自己实际的项目根目录;或者直接在文件管理器里,去项目根目录新建一个 .cache 文件夹。

第 2 步:在项目根目录新建 .cache

Section titled “第 2 步:在项目根目录新建 .cache”

本地这两条线都建议建这个目录。 建好以后,运行时缓存就能尽量保留到本地,不只放在内存里。

电脑本地可以执行:

Terminal window
mkdir .cache

Termux 可以执行:

Terminal window
mkdir -p .cache

第 3 步:后面还想接本地 Redis,就先按新手教程把 Redis 跑起来

Section titled “第 3 步:后面还想接本地 Redis,就先按新手教程把 Redis 跑起来”

这一步不要直接照抄连接串。 先把 Redis 服务跑起来,再回这页填连接地址更稳:

Redis 跑起来以后,再把它的实际地址填到:

LOCAL_REDIS_URL=你自己 Redis 的实际连接地址

这一项只适合电脑本地、Termux 和 Docker。 云平台不要用这一项。

第 1 步:如果你按 Docker 部署页走,.cache 已经挂载好了

Section titled “第 1 步:如果你按 Docker 部署页走,.cache 已经挂载好了”

Docker 部署 页走时,工作目录通常就是:

Terminal window
cd ~/danmu-api

那一页的 Compose 已经有这行:

- ./.cache:/app/.cache
社区面板教程里编辑 docker-compose.yml 的截图
如果你是按 Docker 部署页走的,.cache 挂载已经在 Compose 里了,这里不用重复再配一遍。

如果你这里没有这个目录,就切到你自己实际存放 docker-compose.yml 的目录。

第 2 步:如果还想接 Redis,再补本地 Redis 地址

Section titled “第 2 步:如果还想接 Redis,再补本地 Redis 地址”

Docker 这条线先把 .cache 用起来就够了。 只有你自己已经有 Redis,或者就是想把运行时状态放进 Redis,再补这一项:

LOCAL_REDIS_URL=你自己 Redis 的实际连接地址

如果 Redis 和 danmu_api 在同一个 Docker Compose 网络里,通常要填 Redis 服务名,不要直接写 127.0.0.1

第 1 步:没有额外需求时,先不要配 Upstash

Section titled “第 1 步:没有额外需求时,先不要配 Upstash”

这 3 条云平台线默认先用内存缓存就能跑。 如果你没有下面这些需求,就可以先不配 Upstash:

  • 想记住上次手动选择结果
  • 想让弹幕和结果缓存尽量跨实例保留下来
  • 想减少不同实例之间的缓存不一致

多加一层远程 Redis,会多一次网络请求。 如果你只是先把服务跑通,先不配更省事。

第 2 步:决定要配时,再去创建 Upstash Redis

Section titled “第 2 步:决定要配时,再去创建 Upstash Redis”

先打开:

打开 Upstash Redis 控制台

Upstash 官方控制台创建 Redis 数据库的实际截图
先把 Redis 数据库建出来。名字自己填,建好以后再去复制后面的连接信息。

第 3 步:再把 Upstash 两项填进对应云平台环境变量

Section titled “第 3 步:再把 Upstash 两项填进对应云平台环境变量”
UPSTASH_REDIS_REST_URL=你的 REST URL
UPSTASH_REDIS_REST_TOKEN=你的 REST TOKEN

详细怎么填,看对应页面:

第 1 步:EdgeOne 这条线必须配 Upstash

Section titled “第 1 步:EdgeOne 这条线必须配 Upstash”

这条线不要省。 不补这一层共享缓存时,请求一旦落到新的运行环境,前一次匹配结果就接不上,常见表现就是匹配弹幕直接返回 404。

如果你前面已经按上一节创建好了,就直接复用,不用再建第二个。

Upstash 官方控制台创建 Redis 数据库的实际截图
EdgeOne 这条线先把库建出来,后面再把 URL 和 TOKEN 填到环境变量里。

第 3 步:再去 EdgeOne 的环境变量页补这两项

Section titled “第 3 步:再去 EdgeOne 的环境变量页补这两项”
UPSTASH_REDIS_REST_URL=你的 REST URL
UPSTASH_REDIS_REST_TOKEN=你的 REST TOKEN

第 4 步:具体去哪里点,直接看这页

Section titled “第 4 步:具体去哪里点,直接看这页”

打开 UI 与环境变量 · EdgeOne Pages

第 1 步:后面直接进管理员 UI 的 系统配置

Section titled “第 1 步:后面直接进管理员 UI 的 系统配置”
https://你的域名/你的ADMIN_TOKEN
用户实际操作时在管理员 UI 里打开系统配置页面的截图
后面改缓存时间、记忆项和其他环境变量,直接进 系统配置 改就行。

第 2 步:缓存时间和记忆项主要看这几项

Section titled “第 2 步:缓存时间和记忆项主要看这几项”
SEARCH_CACHE_MINUTES=3
COMMENT_CACHE_MINUTES=3
SEARCH_CACHE_MAX_ITEMS=300
COMMENT_CACHE_MAX_ITEMS=300
REMEMBER_LAST_SELECT=true
MAX_LAST_SELECT_MAP=100
MAX_ANIMES=100
  • 电脑本地 / 手机 Termux:建议先建 .cache
  • Docker:如果按 Docker 部署页走,.cache 已经有了。
  • Vercel / Netlify / Cloudflare Workers:没有额外需求时,可以先不配 Upstash。
  • EdgeOne Pages:先补 Upstash,再继续后面的环境变量配置。

正文依据:huangxd-/danmu_api 当前 README、缓存实现代码(cache-util.js / redis-util.js / local-redis-util.js / configs/envs.js),以及现有教程页中的社区截图与 Upstash 控制台素材。