2016-10-17 32 views
4

私はRedisでSymfony 3.1キャッシュを設定しようとしています。Redisでsymfony 3.1キャッシュコンポーネントを設定

https://symfony.com/blog/new-in-symfony-3-1-cache-component

私がインストールしたpredis/predisとSncRedisBundle:私はこのチュートリアルに従います。私はsnc_redis経由でのRedisにアクセスしようとしたとき、私は

framework: 
    cache: 
     app: cache.adapter.redis 
     default_redis_provider: redis://192.168.34.10 
    snc_redis: 
    clients: 
     default: 
      type: predis 
      alias: default 
      dsn: redis://192.168.34.10 
      logging: %kernel.debug% 
     cache: 
      type: predis 
      alias: cache 
      dsn: redis://192.168.34.10 
      logging: %kernel.debug% 
      options: 
       connection_timeout: 10 
       read_write_timeout: 30 

を入れている私のconfig.ymlで

は、今では正常に動作します。私はキャッシュコンポーネントを使用しようとすると、しかし:

public function getLoggedUserAcl($userId) 
{ 
    $cachedResources = $this->cacheAdapter->getItem('acl.rules'); 
    $cachedResources->expiresAfter(100); 

    if ($cachedResources->isHit()) { 
     dump('hit'); 
     $resources = $cachedResources->get(); 
    } else { 
     dump('not-hit'); 
     $resources = $this->api->getCollection(Resource::class, null, null, [ 
      'userId' => $userId 
     ]); 

     $cachedResources->set($resources); 
    } 

    return $resources; 
} 

CacheAdapterは@cache.appサービスです。

いつもダンプするNOT_HIT。ログにはREDISに関する情報はありません。

私が間違っている箇所を教えてください。何が間違っているかもしれないか、ヒントを教えてください。

+0

;' – malcolm

+0

私はそれがとても些細だったと信じてすることはできません。ありがとうございました@malcolm私はそれを受け入れるでしょう答えとしてあなたのコメントを投稿することができます。できます。 – Robert

+0

ありがとう:)私は助けることができる嬉しい:) – malcolm

答えて

6

あなたがここに逃した最も重要なことは、キャッシュに結果保存することです: `ます$ this-> cacheAdapter->($ cachedResources)を保存欠落

$cachedResources->set($resources); 

$this->cacheAdapter->save($cachedResources); 
関連する問題