0

こんにちは、これが私の現在のセットアップのバージョンです Memcached (1.2.2) Pecl Memcached Client 1.0.2 (libmemcached 0.43 を使用)

問題: get リクエスト中に返された cas トークンを取得できません

これが問題のコードです!

 27   public function action_test() {
 28     //phpinfo();
 29     $m = Model_Mem::getSingleton();
 30     $found = $m->get('navigation');
 31     echo (int)count($found).'<br />'; // Returns an array of navigation objects
 32
 33     $cas = 0;
 34     $found = $m->get('navigation', null, &$cas);
 35     echo (int)count($found); // Returns nothing!
 36
 37     exit;
 38   }

最初のエコーの出力は 7 で、2 番目のエコーは 1 です。また、コードの 2 番目のグループの $cas 変数と $found 変数は両方とも空です。私がこれを正しく行っているかどうかは100%確信が持てませんが、casトークンはまったく機能していないようです。Ive は、簡単に見つけることができる CAS 有効フラグの種類について言及せずに、php Memcached のドキュメントを調べました。また、memcached.org サイトで情報を調べようとしましたが、迷ってしまいました。

問題が発生したことは一度もありません。get リクエストで cas 機能を使用しようとするたびに、何か間違ったことをします。助けてくれてありがとう!

*EDIT Model_Mem::getSingleton() 関数が返すものは次のとおりです。

  static function getSingleton() {
    if (self::$m) 
      return self::$m;

    self::$m = new Memcached();

    $servers = array(
      array('127.0.0.1', 11211, 25),
      array('127.0.0.1', 11212, 25),
      array('127.0.0.1', 11213, 25),
      array('127.0.0.1', 11214, 25)
    );

    // Sets up some options for the memcache server
    self::$m->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
    self::$m->setOption(Memcached::OPT_PREFIX_KEY, Kohana::config('globals.prefix'));
    self::$m->addServers($servers);

    return self::$m;
  }
4

2 に答える 2

0

ちなみに、debian の最新の [安全な] memcached リリースには、まだこの機能がありませんでした。memcached サーバーのソースをインストールして最新にアップグレードしましたが、すべて問題ありません。

于 2010-08-16T17:58:00.657 に答える