Zend Doctrine2 memcache vs PHP Memcache class


Zend Doctrine2 memcache vs PHP Memcache class

我试图理解常规Memcache和Doctrine的MemcacheCache之间的区别。

在我的引导程序中,我实例化Memcache如下:

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

然后,我有下面的代码来实例化条令——这不是完整的代码,因为我只是在看仙人掌:

    $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的正确方式吗?我可以看到,您使用setMemcache将Memcache实例分配给Doctrine的MemcacheCache。。。但是我会用MemcacheCache做我自己的东西吗?还是应该直接使用Memcache实例?

我真的很感激对此发表一些看法,因为我对这应该如何联系在一起感到困惑。

使用Doctrine Common的Memcache Cache是完全可以的,这也是正确的方式,而且您还有一些抽象,可以使用任何Doctrine'Common'Cache'Cache实例。我不太确定您是否需要它,因为您正在使用Zend Framework,并且您可能可以使用CacheManager或其相关的CacheManager资源,这两者都将为您提供使缓存机制可配置的优势。