Symfony缓存组件:为我的所有Redis池定义一个特定的前缀?

问题描述

我刚刚从Doctrine Cache强制切换到Symfony Cache组件(SF 4.4)。我想念的一件事是能够为缓存池定义确切的前缀。原因是我想在应用程序外部运行脚本,以清除所有特定应用程序的完整redis缓存。以前做起来要容易得多,因为我可以扫描并删除所有以特定前缀开头的密钥。

“缓存组件”页面上的文档确实含糊不清,我试图在问题页面中进行搜索,似乎是说,如果您手动定义池而不使用配置,则可以执行此操作。

我发现了以下问题:Set Redis cache prefix key on Symfony,但prefix_seed似乎并没有解决问题。实际上,根据该文档,prefix_seed是否打算仅用作计算哈希值的因子之一?

我也尝试过这样的事情:

services:    
  cache.adapter.redis_http:
    parent: 'cache.adapter.redis'
    public: true
    autowire: true
    autoconfigure: false
    tags:
      - { name: 'cache.pool',namespace: '%store_id%.http' }

它可以工作,但是如果我有20个池,则必须定义20个不同的服务。有没有办法使它起作用,以便密钥为myprefix_symfonyhash?

尽管如此,我找不到任何明确的文档。任何指针都将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)