Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony缓存组件:为所有我的redis池定义特定前缀?_Php_Symfony_Redis_Symfony4_Symfony Cache - Fatal编程技术网

Php Symfony缓存组件:为所有我的redis池定义特定前缀?

Php Symfony缓存组件:为所有我的redis池定义特定前缀?,php,symfony,redis,symfony4,symfony-cache,Php,Symfony,Redis,Symfony4,Symfony Cache,我刚刚强制从条令缓存切换到Symfony缓存组件(sf4.4)。我错过的一件事是为缓存池定义精确前缀的能力。原因是我想在应用程序之外运行脚本,可以清除任何特定应用程序的全部redis缓存。以前这样做要容易得多,因为我可以扫描并删除所有以特定前缀开头的键 “缓存组件”页面上的文档对此非常模糊,我尝试在“问题”页面中搜索,它似乎说,如果您手动定义池而不是使用配置,您可以做到这一点 我发现了这个问题:但前缀_seed似乎不起作用。事实上,根据文档,前缀_seed仅用于计算散列 我也试过这样的方法: s

我刚刚强制从条令缓存切换到Symfony缓存组件(sf4.4)。我错过的一件事是为缓存池定义精确前缀的能力。原因是我想在应用程序之外运行脚本,可以清除任何特定应用程序的全部redis缓存。以前这样做要容易得多,因为我可以扫描并删除所有以特定前缀开头的键

“缓存组件”页面上的文档对此非常模糊,我尝试在“问题”页面中搜索,它似乎说,如果您手动定义池而不是使用配置,您可以做到这一点

我发现了这个问题:但前缀_seed似乎不起作用。事实上,根据文档,前缀_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

不过,我找不到任何关于如何做到这一点的明确文件。非常感谢您的指点