Memcachedクライアントライブラリは最近、安定版としてリリースされました。これはdigg(Andrei Zmievskiによってdiggのために開発されましたが、現在はdiggを使用していません)によって使用されており、以前のmemcacheクライアントよりもはるかに多くのmemcachedプロトコルを実装しています。memcachedの最も重要な機能は次のとおりです。
- Casトークン。これにより、私の生活がはるかに簡単になり、古いデータを簡単に防止できるシステムになりました。キャッシュから何かをプルするときはいつでも、それを使ってcasトークン(2つの数値)を受け取ることができます。その後、そのトークンを使用して、更新されたオブジェクトを保存できます。スレッドの実行中に他の誰も値を更新しなかった場合、スワップは成功します。そうでない場合は、新しいcasトークンが作成され、データをリロードして新しいトークンで再度保存することを強制されます。
- スライスされたパン以来、コールバックの読み取りは最高です。それは私のコードの多くを簡素化しました。
- getDelayed()は、スクリプトがサーバーから結果が返されるのを待つ必要がある時間を短縮できる優れた機能です。
- memcachedサーバーは非常に安定しているはずですが、最速ではありません。新しいクライアントでは、ASCIIの代わりにバイナリプロトコルを使用できます。
- 複雑なデータをmemcachedに保存するときはいつでも、クライアントは常に値のシリアル化(遅い)を行っていましたが、今ではmemcachedクライアントではigbinaryを使用するオプションがあります。これまでのところ、パフォーマンスがどれほど向上するかをテストする機会がありませんでした。
これらすべての点は、私が最新のクライアントに切り替えるのに十分であり、それが魅力のように機能することを伝えることができます。libmemcachedライブラリには外部からの依存関係がありますが、それでもUbuntuとMac OSXにインストールできるため、これまでのところ問題はありません。
新しいライブラリに更新する場合は、最新のサーバーバージョンに更新することをお勧めします。また、いくつかの優れた機能も備えています。コンパイルするにはlibeventをインストールする必要がありますが、Ubuntuではそれほど問題ではありませんでした。
これまでフレームワークが新しいmemcachedクライアントを取得することはありませんでした(ただし、追跡はしていません)が、Zendがまもなく参加するものと思います。
更新
Zend Framework 2にはMemcached用のアダプターがあり、ここで見つけることができます