清除缓存时删除redis密钥
项目配置:symfony 5 我在清除缓存时删除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
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中做些什么。它对你有用吗?我想它可能没有这个功能(拉威尔没有),但你可以检查这里发布的答案-我在类似的情况下多次使用它们