在位于Symfony的Doctrine中的memcached中,命中和未命中一起增加

时间:2016-07-24 02:01:58

标签: php symfony doctrine-orm memcached

每个人。我想使用Memcached来缓存Doctrine返回的结果。我已经配置了它。现在数据可以被缓存,但是当我重新填充页面时,我发现了标题中描述的内容。我想监视那个学说想要得到什么。但似乎Redis中没有monitor命令。现在我不知道该怎么办。 以下是我的配置:

# app/config/parameters.yml
parameters:
    ...
    memcached.servers:
            - { host: 127.0.0.1, port: 11211 }

# app/config/config.yml
services:
    memcached:
        class: Memcached
        calls:
            - [ addServers, [ %memcached.servers% ]]

    doctrine.cache.memcached:
        class: Doctrine\Common\Cache\MemcachedCache
        calls:
            - [setMemcached, ['@memcached']]

#app/config/config_prod.yml
doctrine:
    orm:
        metadata_cache_driver:
            type: service
            id: doctrine.cache.memcached
        query_cache_driver:
            type: service
            id: doctrine.cache.memcached
        result_cache_driver:
            type: service
            id: doctrine.cache.memcached

这是我的php代码:

<?php
namespace AppBundle\Controller;

use Doctrine\Common\Cache\MemcachedCache;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Entity\ProductImage;
use Symfony\Component\HttpFoundation\Response;

class TestMemcachedController extends Controller{
    /**
     * @Route("/memcached")
     */
    public function testAction(){
        $memcached = new \Memcached();
        $memcached->addServer('localhost',11211);
        $cacheDriver = new MemcachedCache();
        $cacheDriver->setMemcached($memcached);

        $this->getDoctrine()->getEntityManager()
            ->createQuery('select image from AppBundle:ProductImage image')
            ->setResultCacheDriver($cacheDriver)
            ->useResultCache(true)
            ->getResult();

        return new Response("<html>
                <head>
                    <title>test</title>
                </head>
                <body>
                    hello
                </body>
            </html>");
    }
}

ProductImage实体有一个外键,引用Product权利。我认为这一点无关紧要。 其他配置是默认配置。

任何建议都有帮助。

0 个答案:

没有答案