Memcache Zend Doctrine2 против PHP-класса Memcache - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь понять разницу между обычным Memcache и MemcacheCache от Doctrine.

В своей начальной загрузке я создаю Memcache следующим образом:

    $memcache = new Memcache;
    $memcache->connect('localhost', 11211);
    \Zend_Registry::set("pdc_memcache_core", $memcache);

Затем у меня есть следующий код для создания экземпляраДоктрина - это не полный код, так как я просто смотрю на cachine:

    $doctrineConfig = new \Doctrine\ORM\Configuration();

    $memcacheCore = \Zend_Registry::get("pdc_memcache_core");
    $cache = new \Doctrine\Common\Cache\MemcacheCache;
    $cache->setMemcache($memcacheCore);
    $cache->setNamespace("PDC_");
    \Zend_Registry::set("pdc_memcache", $cache);

    $doctrineConfig->setMetadataCacheImpl($cache);
    $doctrineConfig->setQueryCacheImpl($cache);

Затем я получаю доступ к кешу так:

    if (\Zend_Registry::get("pdc_memcache")->contains($cacheKey)) {
        ...
    }

Я не пытаюсьхранить сущности Doctrine в Memcache - я просто храню строки и сериализованные массивы.

Теперь ... это правильный способ использования Memcache с Doctrine?Я вижу, что вы используете setMemcache, чтобы назначить экземпляр Memcache для MemcacheCache Doctrine ... но я бы использовал MemcacheCache для своих собственных вещей?Или я должен использовать экземпляр Memcache напрямую?

Буду очень признателен за некоторые мысли по этому поводу, так как меня смущает, как это должно связывать друг с другом.

1 Ответ

0 голосов
/ 30 января 2012

Совершенно нормально использовать Memcache Cache of Doctrine Common , это также правильный путь, и у вас также есть некоторая абстракция, которая позволяет вам использовать любой Doctrine\Common\Cache\Cache экземпляр.Я не совсем уверен, что вам это понадобится в любом случае, так как вы работаете с Zend Framework, и вы, вероятно, можете использовать CacheManager или связанный с ним ресурс CacheManager , который дастВы получаете преимущество в настройке механизма кэширования.

...