Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
清除缓存时删除redis密钥_Redis_Symfony5 - Fatal编程技术网

清除缓存时删除redis密钥

清除缓存时删除redis密钥,redis,symfony5,Redis,Symfony5,项目配置:symfony 5 我在config\packages\cache.yml中将缓存配置为使用redis,如下所示 framework: cache: prefix_seed: myAppPrefix_ app: cache.adapter.redis system: cache.adapter.filesystem default_redis_provider: '%env(REDIS_URL)%' 当我运行ph

项目配置:symfony 5

我在
config\packages\cache.yml
中将缓存配置为使用redis,如下所示

framework:
    cache:
        prefix_seed: myAppPrefix_
        app: cache.adapter.redis
        system: cache.adapter.filesystem
        default_redis_provider: '%env(REDIS_URL)%'
当我运行php bin/console cache:clear--env=dev时,redis键不会被删除,也不会过期

cache:clear
命令不应该删除或使密钥过期

我可以删除与我的应用程序前缀匹配的所有密钥吗


感谢您的帮助

我没有找到任何证明cache:clear应该清除链接到我的配置的redis键的参考资料

最后,我创建了一个命令(注入“AdapterInterface”)来用该代码清理它们:

public function __construct(AdapterInterface $cache)
{
    ...
    $this->cache= $cache;
}

protected function execute(InputInterface $input, OutputInterface $output)
{
    $this->redis->clear();
}

小心,在windows上它不工作,因为redis:356中的redis版本为空

您是否使用
dbsize
info memory
检查了redis?可能您的配置丢失(不熟悉symfony)。您可以尝试
redis cli monitor
查看执行的方法。如果没有
flushall
flushdb
,则需要检查您的redis配置。我不想要flushall,因为redis与其他应用程序共享。我必须只删除与我的前缀匹配的密钥。我只是不明白当我运行cache:clear时symfony是否应该在redis中做些什么。它对你有用吗?我想它可能没有这个功能(拉威尔没有),但你可以检查这里发布的答案-我在类似的情况下多次使用它们