15.2.2 key,グループ名,value,キャッシュ名,EADSクライアント名に指定できるデータ
key,グループ名,value,キャッシュ名,EADSクライアント名に指定できるデータについて説明します。
- 〈この項の構成〉
(1) keyとして指定できるデータ
keyの形式と指定できるデータについて説明します。
(a) keyの形式
key= [<グループ名>:]<要素名>
keyをグルーピングしない場合,<要素名>がkeyになります。keyをグルーピングする場合,<グループ名>,区切り文字(:),<要素名>を合わせたものがkeyになります。このため,<要素名>が同じでも<グループ名>が異なれば別のkeyとなります。
<グループ名>の形式については,「15.2.2(2) グループ名として指定できるデータ」を参照してください。
keyの指定例を次に示します。
-
グルーピングしていないkey
key1
-
グルーピングしたkey
group1:key1
-
グループを階層化したkey
group1:group2:key1
(b) keyとして指定できるデータ型と文字数
keyとして指定できるデータ型と文字数を,APを作成する言語ごとに次の表に示します。keyをグルーピングする場合,グループ名,区切り文字(:),要素名を合わせて1,024文字までとなります。
APを作成する言語 |
keyとして指定できるデータ型 |
文字数 |
備考 |
---|---|---|---|
Java言語 |
文字列(java.lang.String) |
1〜1,024 |
nullまたは空文字列は不正となります。 |
C言語 |
'\0'を終端記号とする文字列(char *) |
1〜1,024 |
|
- 注意事項
-
eztool put,eztool get,eztool removeの各コマンドは,構築後の実行環境が正常に動作するかどうかテストするために使用します。そのため,コマンドで指定できるデータ型とサイズと,API(put,get,remove)で指定できるデータ型とサイズの間に完全な互換性はありません。
(c) keyを指定する際の規則および注意事項
keyを指定する際の規則および注意事項を次に示します。
-
keyには,ASCIIコード「0x20」〜「0x7E」の文字が指定できます。
ただし,次の表に示す文字はEADSの予約文字のため,一部の例外を除いてkeyには使用できません。
表15‒2 keyに使用できない文字 ASCIIコード
文字
例外
0x22
二重引用符(")
なし
0x28
左丸括弧(()
なし
0x29
右丸括弧())
なし
0x3a
コロン(:)
グループ階層名および要素名の区切りにだけ使用できます。グループ階層名および要素名には指定できません。
0x3c
小なり演算子(<)
なし
0x3e
大なり演算子(>)
なし
0x5b
左角括弧([)
EADSサーバID指定グループで,格納先のEADSサーバのEADSサーバIDを指定するときにだけ使用できます。
0x5d
右角括弧(])
0x7c
縦線(|)
なし
(2) グループ名として指定できるデータ
グループ名の形式と指定できるデータについて説明します。
(a) グループ名の形式
<グループ名>= <グループ階層名>[:<グループ階層名>]…
keyの最上位階層のグループ階層名から,任意の階層のグループ階層名までをグループ名として指定できます。中間のグループ階層名から始まる名称は指定できません。
APIなどでグループ名を指定する場合,中間のグループ階層名から始まる名称は指定できません。例えば,keyが「groupA:groupB:groupC:key」の場合に,グループ名として「groupB:groupC」は指定できません。
keyとグループ名の関係の例を次に示します。
-
keyが「groupA:groupB:groupC:key」の場合に指定できるグループ名
groupA
groupA:groupB
groupA:groupB:groupC
-
keyが「[10]group1:group2:key」の場合に指定できるグループ名
[10]group1
[10]group1:group2
(b) EADSサーバID指定グループ
keyの格納先のEADSサーバを指定してkeyをグルーピングする場合は,格納先のEADSサーバのEADSサーバIDを指定します。このようなグループを,EADSサーバID指定グループといいます。
EADSサーバID指定グループを含むkeyの形式を次に示します。
[<EADSサーバID>]<グループ階層名>:[<グループ階層名>:]…<要素名>
EADSサーバID指定グループを使用してkeyをグルーピングする場合,keyの先頭のグループ階層名に,左角括弧([)および右角括弧(])で囲んだEADSサーバIDを指定します(形式中の「[<EADSサーバID>]」の左角括弧([)および右角括弧(])は,実際に指定することを表しています。省略の意味ではありません)。EADSサーバIDには,先頭が0でない整数を指定します。
なお,この場合,左角括弧([),EADSサーバID,および右角括弧(])も含めて,グループ名として扱われます。
EADSサーバID指定グループを含むkeyの指定例を次に示します。
[1]group1:key1
(c) グループ名として指定できるデータ型と文字数
グループ名として指定できるデータ型については,「15.2.2(1)(b) keyとして指定できるデータ型と文字数」を参照してください。keyをグルーピングする場合,グループ名,区切り文字(:),要素名を合わせて1,024文字までとなります。そのため,グループ名として指定できる文字数は1,022文字までとなります。
(d) グループ名を指定する際の規則および注意事項
グループ名を指定する際の規則および注意事項を次に示します。これ以外の規則および注意事項については,「15.2.2(1)(c) keyを指定する際の規則および注意事項」を参照してください。
-
keyをグルーピングする場合,作成できるグループ数,およびグループの階層数に上限はありません。
ただし,グループを階層化した場合,操作する階層が深くなるにつれて処理に時間が掛かります。そのため,適切な階層を設定してください。
-
EADSサーバID指定グループを使用する場合,クラスタに存在しないEADSサーバのEADSサーバIDは指定できません。
-
EADSサーバID指定グループを含むkeyのハッシュ値は,EADSサーバのレンジ上の値です。リバランス処理によってEADSサーバのレンジが変わると,ハッシュ値も変わることがあります。
(3) valueとして指定できるデータ
valueとして指定できるデータ型とサイズを,APを作成する言語ごとに次の表に示します。
APを作成する言語 |
valueとして指定できるデータ型 |
サイズ (単位:バイト) |
備考 |
---|---|---|---|
Java言語 |
シリアライズ可能な任意のオブジェクト(java.lang.Object) |
1〜262,144 |
|
C言語 |
任意のバイト配列(void *) |
1〜262,144 |
任意のバイト配列の長さとなります。 |
- 注意事項
-
-
指定できるデータ型とサイズについて,API(put,get,remove)・コマンド(eztool put,eztool get,eztool remove)間に完全な互換性はありません。
-
Java言語のクライアントAPまたはユーザファンクションと,C言語のクライアントAPで同一のkeyを扱う場合,valueはバイト配列にしてください。Java言語のクライアントAPまたはユーザファンクションから格納したバイト配列のvalueを,C言語のクライアントAPで取得できます。バイト配列でないvalueをC言語のクライアントAPで取得した場合,エラーとなります。
C言語のクライアントAPから格納したvalueは,Java言語のクライアントAPまたはユーザファンクションでバイト配列として取得できます。
-
(4) キャッシュ名として指定できるデータ
キャッシュ名として指定できるデータ型と文字数を,APを作成する言語ごとに次の表に示します。
APを作成する言語 |
キャッシュ名として指定できるデータ型 |
文字数 |
備考 |
---|---|---|---|
Java言語 |
文字列(java.lang.String) |
1〜32 |
|
C言語 |
'\0'を終端記号とする文字列(char *) |
1〜32 |
|
(5) EADSクライアント名として指定できるデータ
EADSクライアント名として指定できるデータ型と文字数を,APを作成する言語ごとに次の表に示します。
APを作成する言語 |
EADSクライアント名として指定できるデータ型 |
文字数 |
備考 |
---|---|---|---|
Java言語 |
文字列(java.lang.String) |
0〜16 |
|
C言語 |
'\0'を終端記号とする文字列(char *) |
0〜16 |
|