清除存储在Redis中的Doctrine缓存

时间:2014-09-18 21:11:05

标签: php symfony caching doctrine-orm redis

我开始在我的项目上使用Redis(php-redis)。是一个Symfony2项目,我找到了:

https://github.com/snc/SncRedisBundle

我按照安装过程进行了配置:

  • 一些客户端存储no-sql数据和缓存
  • 会话存储
  • Doctrine metada,结果和查询缓存

我在一个包中创建了一个新实体,但是我失败了,因为我在yml创建了它,所有其他的都带有注释系统,所以我删除了yml格式并创建了注释。

我在注释类上做的每一个更改(例如更改表名)都不会影响架构或数据库,即使我重新创建数据库或尝试执行缓存:清除所有选项。

如果我只是评论redis doctrine配置行,它可以工作,我可以看到架构上的更改。

我可能会遗忘某些东西,或者我真的无法找到如何清理该教条的redis缓存。

¿我必须手动清理redis客户端用于缓存的任何位置吗?

以下是配置:

#Snc Redis Bundle
snc_redis:
  clients:
    d2a:
        type: phpredis
        alias: d2a
        dsn: redis://localhost/1
    cache:
        type: phpredis
        alias: cache
        dsn: redis://localhost
        logging: true
  session:
    client: d2a
    prefix: redis_session
  doctrine:
    metadata_cache:
        client: cache
        entity_manager: default          # the name of your entity_manager connection
        document_manager: default        # the name of your document_manager connection
    result_cache:
        client: cache
        entity_manager: [default, read]  # you may specify multiple entity_managers
    query_cache:
        client: cache
        entity_manager: default

1 个答案:

答案 0 :(得分:1)

最简单的方法,但不是最好的方法是使用doctrine缓存刷新redis数据库。运行

%JAVA_HOME%/bin;%PATH%

(未经测试!)另一种方法是在doctrine config http://symfony.com/doc/current/reference/configuration/doctrine.html#caching-drivers中设置doctrine元数据缓存

php app/console redis:flushdb --client=cache