我使用的是symfony3.4+documenty+redis,使用的是composer包sncredisbundle
在我的config.yml中,我启用了查询缓存:
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
auto_mapping: false
metadata_cache_driver: redis
query_cache_driver: redis
result_cache_driver: redis # !!!
snc_redis:
clients:
doctrine:
type: predis
alias: doctrine_redis
dsn: "%redis_dsn_doctrine%"
logging: false
options:
connection_persistent: true
doctrine:
query_cache: #!!!!!!!!
#it caches the translation from Doctrine's DQL into SQL.
client: doctrine_redis
namespace: shop_doctrine_query
entity_manager: [default, legacy]
条令为其结果缓存设置的密钥永不过期:
我怎么能自动打电话 \Doctrine\ORM\Query::setQueryCacheLifetime
或者让缓存过期(注意:我无权在此服务器上设置redis逐出策略)。
1条答案
按热度按时间nwwlzxa71#
我认为条令查询缓存生存期既没有在条令包中配置,也没有在redis包中配置,而是在framework包中配置,您可以在其中设置缓存池。
您应该看看这个问题,用户询问如何使用缓存配置rediscluster。b-galati给出了一个配置示例,其中定义了条令结果缓存的生存期。
你能试试这样的吗:
或
这个
symfony console cache:pool:list
命令可以帮助您识别池和symfony console cache:pool:prune
可以帮助您查看过期查询是否已被删除。