Search:

Search all manuals
Search this manual
Manual
Couchbase Server 1.8 マニュアル
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
11.5 CouchbaseのAPI
Chapter Sections
Chapters

11.5.1. memcachedプロトコル

11.5.1.1. プロトコル拡張
11.5.1.2. バイナリプロトコル
11.5.1.3. memcapable 1.0

Couchbaseはprotocol.txtで説明されているテキスト形式のmemcachedプロトコルをサポートしています。vBucketのサポートが不足しているため、直接couchbaseのポートに対するテキスト形式のプロトコルは無効です。テキスト形式のプロトコルを利用した全てのcouchbaseへのアクセスはmoxiを通す必要があります。

memcachedと少し異なる点は、Couchbaseはより大きなサイズのアイテムを許容できることです。アイテムの最大サイズ設定に関して、memcachedのデフォルトは1MBであるのに対し(最近のバージョンでは調整可能)、Couchbaseのデフォルトは20MBとなっています。

11.5.1.1. プロトコル拡張

上記のリンクで説明されているコマンドに加えて、Couchbaseは、以下のコマンド拡張機能をサポートしています。

  • getl

    getlは"ロック付き取得"であり、現在アクティブに開発中です。getlの動作と関連するコマンドがgetl拡張操作で説明されています。

11.5.1.2. バイナリプロトコル

Couchbaseは範囲クエリコマンドを除き、memcachedプロジェクトのwikiで解説されている通りのバイナリmemcachedプロトコルをサポートしています。現在は、範囲クエリコマンドの実装は存在しません、これはまだドラフトの仕様です。

11.5.1.2.1. プロトコル拡張

上記のリンクで説明されているテキスト形式のコマンドに加えて、Couchbaseは、以下のコマンド拡張機能をサポートしています。

  • CMD_STOP_PERSISTENCE

  • CMD_START_PERSISTENCE

  • CMD_SET_FLUSH_PARAM

  • CMD_SET_VBUCKET

  • CMD_GET_VBUCKET

  • CMD_DEL_VBUCKET

  • CMD_START_REPLICATION

  • CMD_STOP_REPLICATION

  • CMD_SET_TAP_PARAM

  • CMD_EVICT_KEY

11.5.1.3. memcapable 1.0

memcapablememcachedの実装がmemcachedプロトコルに準拠しているかを検証するための、memcachedのlibに含まれるツールです。プロトコルの説明で定義されているすべてのコマンドを送信し、結果を検証することによってこれを行います。これはサーバがmemcapableテストスイートを通すために、実際のアイテムストレージと全てのコマンドを実装しなければならないことを意味します。

11.5.1.3.1. コマンドライン オプション

memcapableは便利なコマンドラインオプションが色々あります(使用可能なオプションの一覧を表示するにはmemcapable - hを実行してみてください)。memcapableをオプションなしで実行するとlocalhost:11211に接続し、memcapableテストスイートを実行します(「例」参照)。もしあなたが自分自身のサーバを実装しようとしていて、テストの1つが失敗したなら、失敗したい理由を知りたいでしょう。そのような時に便利なオプションが2つあります。 -v-c です。- vオプションは、テストが失敗した理由を出力し、問題を把握できる場合があります。私はデバッガとコアファイルの大ファンなので-cの方が好きです。-cを利用すれば、memcapableはコアをダンプし、コアファイルを調べてテストが失敗した理由を調査することができます。

11.5.1.3.2. 例

この例ではローカルホストの11211番ポートで稼動しているサーバをテストします(この例では、memcachedサーバを実行しています)。

trond@opensolaris> memcapable
ascii quit [pass]
ascii version [pass]
ascii verbosity [pass]
ascii set [pass]
ascii set noreply [pass]
ascii get [pass]
ascii gets [pass]
ascii mget [pass]
ascii flush [pass]
ascii flush noreply [pass]
ascii add [pass]
ascii add noreply [pass]
ascii replace [pass]
ascii replace noreply [pass]
ascii CAS [pass]
ascii CAS noreply [pass]
ascii delete [pass]
ascii delete noreply [pass]
ascii incr [pass]
ascii incr noreply [pass]
ascii decr [pass]
ascii decr noreply [pass]
ascii append [pass]
ascii append noreply [pass]
ascii prepend [pass]
ascii prepend noreply [pass]
ascii stat [pass]
binary noop [pass]
binary quit [pass]
binary quitq [pass]
binary set [pass]
binary setq [pass]
binary flush [pass]
binary flushq [pass]
binary add [pass]
binary addq [pass]
binary replace [pass]
binary replaceq [pass]
binary delete [pass]
binary deleteq [pass]
binary get [pass]
binary getq [pass]
binary getk [pass]
binary getkq [pass]
binary incr [pass]
binary incrq [pass]
binary decr [pass]
binary decrq [pass]
binary version [pass]
binary append [pass]
binary appendq [pass]
binary prepend [pass]
binary prependq [pass]
binary stat [pass]
All tests passed

次の例では、"binary prepend"という名前のテストが実行されます。

trond@opensolaris> memcapable -T "binary prepend"
binary prepend [pass]
All tests passed

次の例では、テストスイートを実行しますが、各テストの前にプロンプ​​トが表示されます。

trond@opensolaris> memcapable -P ascii quit
Press <return> when you are ready?
ascii quit [pass]
ascii version
Press <return> when you are ready? quit