BLOGTIMES
2006/12/06

XCacheを導入してみた

  php 
このエントリーをはてなブックマークに追加

もともとPHPのアクセラレーターとしてはeAcceleratorを入れていたんですが、最近新しくXCacheというのができているというのを耳にしたので、ためしに導入をしてみることにしました。

まだ、発展途上のソフトウェアなので日本語の情報があまりないのでちょっと不安になりましたが、なんとかインストールすることができました。インストールについてはDo You PHP? - XCacheを導入してみる - 第3のキャッシュモジュールの説明が詳しいです。

インストール

今回はスタンダードにインストールしてみました。

# tar jxf xcache-1.2.0-rc2.tar.bz2 # cd xcache # phpize # ./configure --enable-xcache --enable-xcache-coverager # make # make install

php.iniはこんな感じ

xcache.shm_scheme = "mmap" xcache.size = 16M xcache.count = 2 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 86400 xcache.var_size = 16M xcache.var_count = 2 xcache.var_slots = 8K xcache.var_ttl = 86400 xcache.var_maxttl = 0 xcache.var_gc_interval = 7200

今のところは特に問題なく動作しているようです

APIがちょっと違う

ココはNucleusを使っているサイトの中ではレスポンスがかなり良いほうであるという自信があるのですが、その秘密のひとつは共有メモリを利用したキャッシュを使って、プラグインオプションをすべてメモリ上に保持するようにしMySQLへのクエリの数を抑えているというところにあります。

これまではeAcceleratorのAPIを使って実現していたのですが、今回導入したXCacheにも同様のAPIが用意されています。機能はほとんど同じなのですがeAcceleratorのAPIは引数のValueの型がStringなのに対して、XCacheはmixedになっています。eAcceleratorはStringなのでArrayなどをキャッシュしたい場合には、serialize()/unserialize()をする必要がありましたが、XCacheはそのままキャッシュすることができるため使い勝手はこちらの方が上ですね。

XcacheApi - XCache - Trac

mixed xcache_get(string name)
bool xcache_set(string name, mixed value [, int ttl])

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/1750
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン