You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker部署的Keycloak 20中禁用并清除主题缓存

在Docker Keycloak 20.0.3中禁用并清除主题缓存(ISPN缓存配置)

一、禁用主题缓存

Keycloak 20+版本通过SPI配置控制主题缓存,无需修改XML文件,直接用环境变量或启动参数即可设置:

  • 启动容器时添加以下环境变量,分别禁用主题和模板的缓存:
    docker run -d \
      -e KC_CACHE=ispn \
      -e KC_SPI_THEME_CACHE_THEMES=false \
      -e KC_SPI_THEME_CACHE_TEMPLATES=false \
      # 补充其他必要参数(端口、管理员账号等)
      quay.io/keycloak/keycloak:20.0.3 start
    
    若用Docker Compose,在environment节点添加:
    environment:
      KC_CACHE: ispn
      KC_SPI_THEME_CACHE_THEMES: "false"
      KC_SPI_THEME_CACHE_TEMPLATES: "false"
    

二、清除已有的主题缓存

针对ISPN缓存配置,有三种实用方式:

1. 重启容器(最简方案)

如果未配置ISPN缓存持久化(默认是本地内存缓存),直接重启容器就能清空所有缓存:

docker restart <你的Keycloak容器名称>

2. 通过管理API清除缓存

用Keycloak Admin API主动触发缓存失效,步骤如下:

  • 先获取管理员访问令牌:
    curl -X POST "http://<Keycloak主机>:<端口>/realms/master/protocol/openid-connect/token" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "username=<管理员账号>" \
      -d "password=<管理员密码>" \
      -d "grant_type=password" \
      -d "client_id=admin-cli"
    
  • 用拿到的access_token调用缓存失效接口:
    curl -X POST "http://<Keycloak主机>:<端口>/admin/master/console/api/cache/invalidate" \
      -H "Authorization: Bearer <获取到的access-token>"
    

3. 清理持久化缓存(若配置了ISPN持久化)

如果你的ISPN缓存配置了持久化(比如JDBC、文件存储),需要手动清理对应存储:

  • 文件存储:找到容器内挂载到宿主机的缓存目录,删除缓存文件;
  • JDBC存储:连接缓存数据库,清空带ispn或cache前缀的缓存表。

内容的提问来源于stack exchange,提问作者marcg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:38:26