1

YII の私のバージョン: 1.1.12... スクラッチ、バージョン 1.1.13 にアップグレードしましたが、まだ動作しません。

私はこれを試しました:

Yii::app()->cache->set('someKey', $auctions);
$data = Yii::app()->cache->get('someKey');
print_r($data);

そして、保存したデータが表示されます!ただし、これを試してみると:

Yii::app()->cache->set('someKey', $auctions, 10);
$data = Yii::app()->cache->get('someKey');
print_r( $data );

何も見えない?YII が私の時間間隔を無視するのはなぜですか? 私は何が欠けていますか?

** 編集 **

私のキャッシングは設定で次のように定義されています:

'cache'=>array(
  'class'=>'system.caching.CMemCache',
    'useMemcached'=>false,
    'servers'=>array(
      array( 'host'=>'127.0.0.1', 'port'=> 11211, 'weight'=>60 ),
      //array('host'=>'server2', 'port'=>11211, 'weight'=>40),
    ),
),

Memcache が動作していることはわかっています。なぜなら、YII フレームワークの外で次の例でテストしたからです。

$memcache = new Memcache;
$memcache->connect("localhost",11211);
$tmp_object = new stdClass;
$tmp_object->str_attr = "test";
$memcache->set("mysupertest",$tmp_object,false,5);
var_dump($memcache->get("mysupertest"));

これは機能し、アイテムは 5 秒間キャッシュされます...

4

2 に答える 2

3

CMemCache.php のバグのようです。この機能があります:

protected function setValue($key,$value,$expire)
{
  if($expire>0)
    $expire+=time();
  else
    $expire=0;

  return $this->useMemcached ? $this->_cache->set($key,$value,$expire) : $this->_cache->set($key,$value,0,$expire);
}

MemCache は時間が追加されることを望んでいないため、私の簡単な修正は次のとおりです。

protected function setValue($key,$value,$expire)
{
  return $this->useMemcached ? $this->_cache->set($key,$value,$expire) : $this->_cache->set($key,$value,0,$expire);
}
于 2013-02-19T11:25:23.503 に答える
1

$auctionsよく定義されていることを確認してください。

Yii::app()->cache->set('someKey', array('someValue'), 120); // 120 means 2 minutes
print_r(Yii::app()->cache->get('someKey')); // you should see the array with the single value, I do see it when I try to run it

構成に問題がなく、使用していないことを確認してくださいCDummyCache。私は次のようになります。

'components' => array(
       ...
       // Add a cache component to store data 
       // For demo, we are using the CFileCache, you can use any 
       // type your server is configured for. This is the simplest as it
       // requires no configuration or setup on the server.
       'cache' => array (
           'class' => 'system.caching.CFileCache',
       ),
       ...
   ),
于 2013-02-19T10:23:41.700 に答える