Index > Protocol
プロトコル
ROMAのプロトコルはmemcachedのテキストベースのプロトコルと互換性があります。 どのmemcachedクライアントライブラリでもROMAとやり取りをすることができます。
ストレージ コマンド
設定
目的
set は、ROMAにデータを保存するコマンドです。
構文
set <key> <flags> <exptime> <bytes> [noreply]\r\n
<datablock>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<flags> | この値は使われません。ROMA はこのオプションを無視します。 | Yes |
<exptime> | 有効期限(unix timeまたは秒)を指定します。値が0の場合、データは有効期限切れにならないでしょう。 値が0では無い場合、unix timeまたは現在の時間からの秒数を指定します。クライアントは有効期限が切れたデータを検索することができません。 | Yes |
<bytes> |
デリミタ \r\n を含まないデータブロックのバイト数を指定します。値が0の場合は、空のデータブロックが続きます。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
<datablock> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
STORED\r\n
そうでなければ NOT_STORED\r\n
追加
目的
addは、ROMAがこのキーのデータをまだ持っていない場合にだけ、ROMAにデータを保持するコマンドです。
構文
add <key> <flags> <exptime> <bytes> [noreply]\r\n
<datablock>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<flags> | この値は使われません。ROMA はこのオプションを無視します。 | Yes |
<exptime> |
有効期限(unix timeまたは秒)を指定します。値が0の場合、データは有効期限切れにならないでしょう。値が0では無い場合、unix timeまたは現在の時間からの秒数を指定します。クライアントは有効期限が切れたデータを検索することができません。 | Yes |
<bytes> |
デリミタ \r\n を含まないデータブロックのバイト数を指定します。値が0の場合は、空のデータブロックが続きます。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
<datablock> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
STORED\r\n
そうでなければ NOT_STORED\r\n
置換
目的
replace は、ROMAがこのキーのデータをすでに持ってdoes 場合にだけ、ROMAにデータを保持するコマンドです。
構文
replace <key> <flags> <exptime> <bytes> [noreply]\r\n
<datablock>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<flags> | この値は使われません。ROMA はこのオプションを無視します。 | Yes |
<exptime> |
有効期限(unix timeまたは秒)を指定します。値が0の場合、データは有効期限切れにならないでしょう。値が0では無い場合、unix timeまたは現在の時間からの秒数を指定します。クライアントは有効期限が切れたデータを検索することができません。 | Yes |
<bytes> |
デリミタ \r\n を含まないデータブロックのバイト数を指定します。値が0の場合は、空のデータブロックが続きます。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
<datablock> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
STORED\r\n
そうでなければ NOT_STORED\r\n
追加
目的
appendは、既存のデータの後にこのデータを追加するコマンドです。
構文
append <key> <bytes> [noreply]\r\n
<datablock>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<bytes> |
デリミタ \r\n を含まないデータブロックのバイト数を指定します。値が0の場合は、空のデータブロックが続きます。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
<datablock> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
STORED\r\n
そうでなければ NOT_STORED\r\n
先頭に追加
目的
prependは、既存のデータの前にこのデータを追加するコマンドです。
構文
prepend <key> <bytes> [noreply]\r\n
<datablock>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<bytes> |
デリミタ \r\n を含まないデータブロックのバイト数を指定します。値が0の場合は、空のデータブロックが続きます。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
<datablock> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
STORED\r\n
そうでなければ NOT_STORED\r\n
cas
目的
cas はチェックと設定のコマンドです。ROMAが最後に取得してから誰も更新していない場合のみデータを保存します。
構文
cas <key> <flags> <exptime> <bytes> <cas unqiue> [noreply]\r\n
<datablock>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<flags> | この値は使われません。ROMA はこのオプションを無視します。 | Yes |
<exptime> |
有効期限(unix timeまたは秒)を指定します。値が0の場合、データは有効期限切れにならないでしょう。値が0では無い場合、unix timeまたは現在の時間からの秒数を指定します。クライアントは有効期限が切れたデータを検索することができません。 | Yes |
<bytes> |
デリミタ \r\n を含まないデータブロックのバイト数を指定します。値が0の場合は、空のデータブロックが続きます。 | Yes |
<cas unique> | 既存のエントリのユニークな64ビット値を指定します。cas コマンドを使うと、クライアントはgetsコマンドでこの値を取得する必要があります。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
<datablock> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
STORED\r\n
casコマンドを使って保存しようとしているアイテムは最後に取得してから変更されています。 EXISTS\r\n
そうでなければ NOT_STORED\r\n
取得コマンド
get, gets
目的
get and gets are retrieval commands.
構文
get <key>\r\n
gets <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | Specify one or more key strings separated by whitespace. | Yes |
リターンコード
VALUE <key> <flags> <bytes> [<cas unique>]\r\n
<data block>\r\n
- <key> は前のコマンドで指定されたキーです。
- <flags> この値は使われません。
- <bytes> は、デリミタの\r\nが無いデータブロックのバイト数です。
- [<cas unique>] はユニークな64ビットの整数です。getsコマンドを使った時のみ。
- <data block> はデータです。
END\r\n
削除コマンド
削除
目的
delete はデータを論理的に削除するコマンドです。
構文
delete <key> [<time>] [noreply]\r\n
意味
名前 | 解説 | 必要条件 |
キー | ROMAで削除したいキーを指定します。 | Yes |
[<time>] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | いいえ |
リターンコード
コマンドを送信した後で、クライアントは以下のように応答を待ちます。
DELETED\r\n
そうでなければ NOT_FOUND\r\n
増加/現象
incr, decr
目的
incr and decr は、既存のデータの値を 増加/減少 するコマンドです。
構文
incr <key> <value> [noreply]\r\n
decr <key> <value> [noreply]\r\n
意味
名前 | 解説 | 必要条件 |
キー | 項目を 増加/減少 したいキーを指定します。 | Yes |
<value> | 64ビットの符号無しの整数を指定します。項目の 増加/減少 をしたい値です。 | Yes |
[noreply] | この値は使われません。ROMA はこのオプションを無視します。 | Yes |
リターンコード
コマンドを送信した後で、クライアントは以下のように応答を待ちます。
<value>\r\n
キーが見つからない場合。 NOT_FOUND\r\n
その他のコマンド
balse
目的
balse は、ROMAをシャットダウンするコマンドです。
構文
balse [<reason>]\r\n
Are you sure?(yes/no)\r\n
- yes ROMAはすぐにシャットダウンするでしょう。
- no ROMAは何もせず、この接続は閉じられるでしょう。
意味
名前 | 解説 | 必要条件 |
[reason] | ログに書き込まれてる単語を指定します。 | いいえ |
リターンコード
stats, (stat)
目的
stats は、ROMAが ROMA自身のステータスに伝えるコマンドです。
構文
stats\r\n
statsの一部を表示したい場合は、正規表現で<args>を使う必要があります。
stats <args>\r\n
リターンコード
statsコマンドについての詳細な情報は、Stats_Information を参照してください。