0

要部署,我先“git pull”然后“bin/console cache:clear”来查看我网站的更新。

它可以工作,但我不想在发生这种情况时丢失我的缓存池的数据。(我将结果缓存到第 3 方 api 调用)

我希望 symfony 命令只清除它自己的缓存存储,而不是我提交的缓存项,因为在我清除 symfony 缓存以部署新代码后它们对我仍然有价值。

Q1:我怎样才能清除下面我应用的缓存池“api_call_cache_pool”之外的所有缓存?

Q2:我应该使用不同的缓存清除调用来代替“bin/console cache:clear”吗?

Q3: api_call_cache_pool 的适配器是 Redis 而不是文件系统,会不会被清空?

framework:
    cache:

        directory: '%kernel.cache_dir%/pools'   

        app: cache.adapter.filesystem
        system: cache.adapter.system

        pools:
            api_call_cache_pool:
                adapter: cache.adapter.filesystem
                default_lifetime: 6000
                tags: true
4

1 回答 1

0

由于cache:clear将清除所有缓存,我建议通过利用php bin/console cache:pool:list并排除您要排除的内容(api_call_cache_pool在您的示例中)来创建一个脚本。

我不确定为什么不能在这里应用“黑名单”政策。

(或者,也许,使用cache.system_clearerandcache.app_clearer就足够了;你应该自己尝试)

于 2020-02-26T17:25:19.733 回答