Map プラグイン
概要
このプラグインはmapタイプのデータを格納する機能を持っています。
準備
設定ファイル
PLUGIN_FILES パラメータを次のように追加します;
PLUGIN_FILES = ['plugin_map.rb']
コマンド
map_set
map_set は、mapタイプのデータをROMAに格納するコマンドです。
構文
map_set <key> <mapkey> <flags> <exptime> <bytes>\r\n
<data block>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<mapkey> | データのmapkeyを指定します。データの長さは <bytes>です。 | Yes |
<flags> | この値は使われません。ROMA はこのオプションを無視します。 | Yes |
<exptime> | 有効期限(unix timeまたは秒)を指定します。値が0の場合、データは有効期限切れにならないでしょう。値が0では無い場合、unix timeまたは現在の時間からの秒数を指定します。 | Yes |
<bytes> | デリミタの\r\nが無いサブキーのバイト数を指定します。値が0であれば、空が続きます。 | Yes |
<data block> | 任意の8ビットのデータのチャンクを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
コマンドラインとデータブロックを送信後、クライアントは次のように応答を待ちます。
Success
STORED\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_get
map_get は、mapプラグインの検索コマンドです。
構文
map_get <key> <mapkey>\r\n
意味
名前 | 解説 | 必要条件 |
キー | キーを指定します。 | Yes |
<mapkey> | データのmapkeyを指定します。 | Yes |
リターンコード
Success
VALUE <key> <flags> <bytes>\r\n
<data block>\r\n
- <key> は前のコマンドで指定されたキーです。
- <flags> この値は使われません。常に0です。
- <bytes> は、デリミタの\r\nが無いデータブロックのバイト数です。
- <data block> はデータです。
最後に、サーバはそれらの文字列を送信します。 END\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_delete
map_delete は、mapタイプのデータのmapkeyを論理的に削除するコマンドです。
構文
map_delete <key> <mapkey>\r\n
意味
名前 | 解説 | 必要条件 |
キー | 削除したいmapkeyを持つキーを指定します。 | Yes |
<mapkey> | 削除したいmapkeyを指定します。 | Yes |
リターンコード
Success
DELETED\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
キーが存在しない時。
NOT_FOUND\r\n
mapkeyが存在しない時のみ。( The key exists.)
NOT_DELETED\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_clear
map_clear は、指定されたキーの値を削除するコマンドです。このコマンドはキーを削除しません。
構文
map_clear <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | 削除したいキーを指定します。 | Yes |
リターンコード
Success
CLEARED\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
キーが存在しない時。
NOT_FOUND\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_size
map_size は、mapkeyの数を返すコマンドです。
構文
map_size <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | キーを指定します。 | Yes |
リターンコード
Success
<size>\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
キーが存在しない時。
NOT_FOUND\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_key?
map_key? は、キーがmapタイプのキーかどうかを返すコマンドです。
構文
map_key? <key> <mapkey>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<mapkey> | データのmapkeyを指定します。 | Yes |
リターンコード
キーとmapkeyがmapタイプのデータの場合。
true\r\n
キーとmapkeyがmapタイプのデータでは無い場合。
false\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
キーが存在しない時。
NOT_FOUND\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_value?
map_value?は、指定した値がキーに含まれているかどうかを返すコマンドです。
構文
map_value? <key> <bytes>\r\n
<data block>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
<bytes> | デリミタの\r\nが無いサブキーのバイト数を指定します。値が0であれば、空が続きます。 | Yes |
<data block> | 値のデータを指定します。This data of length is <bytes> from the previous line. | Yes |
リターンコード
値が指定したキーに含まれている場合
true\r\n
値が指定したキーに含まれていない場合。
false\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
キーが存在しない時。
NOT_FOUND\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_empty?
map_empty? は、キーが値を持っているかどうかを返すコマンドです。
構文
map_empty? <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
リターンコード
指定したキーの値が空の場合。
true\r\n
指定したキーの値がデータを持っている場合
false\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
キーが存在しない時。
NOT_FOUND\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_keys
map_keys は、キーが含まれているmap-keyを返すコマンドです。
構文
map_keys <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
リターンコード
Success
VALUE <key> <flags> <bytes>\r\n
<data block>\r\n
- <key> は前のコマンドで指定されたキーです。
- <flags> この値は使われません。常に0です。
- <bytes> は、デリミタの\r\nが無いデータブロックのバイト数です。
- <data block> はデータです。
最初のデータブロックはmapkyの数です。
次のデータブロックはmapkeyのそれぞれの値です
最後に、サーバはそれらの文字列を送信します。 END\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_values
map_values は、キー含まれている値を返すコマンドです。
構文
map_values <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
リターンコード
Success
VALUE <key> <flags> <bytes>\r\n
<data block>\r\n
- <key> は前のコマンドで指定されたキーです。
- <flags> この値は使われません。常に0です。
- <bytes> は、デリミタの\r\nが無いデータブロックのバイト数です。
- <data block> はデータです。
最初のデータブロックは値の数です。
次のデータブロックは値のそれぞれの値です。
最後に、サーバはそれらの文字列を送信します。 END\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n
map_to_s
map_to_s は、文字タイプの値を返すコマンドです。
構文
map_to_s <key>\r\n
意味
名前 | 解説 | 必要条件 |
キー | クライアントがデータを格納するように依頼するキーを指定します。 | Yes |
リターンコード
Success
VALUE <key> <flags> <bytes>\r\n
<data block>\r\n
- <key> は前のコマンドで指定されたキーです。
- <flags> この値は使われません。常に0です。
- <bytes> は、デリミタの\r\nが無いデータブロックのバイト数です。
- <data block> は、ハッシュ形式のデータです。
最後に、サーバはそれらの文字列を送信します。 END\r\n
キーが指定されていない場合。
CLIENT_ERROR dose not find key\r\n
そうでなければ
CLIENT_ERROR #{ error messages }\r\n
あるいは
SERVER_ERROR #{ error messages }\r\n