PHP用のクライアント.
Javaをそのまま焼きなおしました.
TODO:PHPのコーディングルールに従っていない.
TODO:以下がJava版のOkuyamaClientに足りないメソッドです.
getTagValues
getMultiTagValues
getMultiTagKeys
getTagKeysResult
getMultiTagKeysResult
利用方法
// クライアント作成
$client = new OkuyamaClient();
// okuyamaへ接続(MasterNodeのアドレスとポート番号を指定)
if(!$client->connect("127.0.0.1", 8888)) {
print_r("Sever Connection refused !!");
exit;
}
try {
// Key-Valueを登録
$client->setValue("Key-1", "Value-1");
// Keyを指定してValueを取得
$ret = $client->getValue("Key-1");
if ($ret[0] === "true") {
// Valueを表示
print_r($ret[1]);
} else if ($ret[0] === "false") {
// Valueなし
print_r("Not found");
}
$client->close();
} catch (Exception $e) {
var_dump($e);
}
Located in /OkuyamaClient.class.php (line 45)
設定されたMasterNodeの接続情報を元に自動的に接続を行う.
接続出来ない場合自動的に別ノードへ再接続を行う.
マスタサーバとの接続を切断.
接続処理.
エンコーディング指定有り.
MasterNodeへデータの減算を要求する.
Transactionを開始する.
データロック、ロックリリースを使用する場合は、
事前に呼び出す必要がある
マスタサーバからKeyでデータを取得する(バイナリ).
MasterNodeからTag値を渡すことで紐付くKey値の配列を取得する
複数のTagを指定することで、一度に関連する値を取得可能
複数のTagに紐付く値はマージされて1つとなる
引数のmargeTypeを指定することで、ANDとORを切り替えることが出来る
MasterNodeからTag値を渡すことで紐付くValue値の集合を取得する
複数のTagを指定することで、一度に関連する値を取得可能
複数のTagに紐付く値はマージされて1つとなる
引数のmargeTypeを指定することで、ANDとORを切り替えることが出来る
マスタサーバからKeyを複数個指定することで一度に複数個のKeyとValueを取得する.
取得されたKeyとValueがarrayにKeyとValueの組になって格納され返される
存在しないKeyを指定した場合は返却される連想配列には含まれない
Key値にブランクを指定した場合はKeyを指定していないものとみなされる
文字列エンコーディング指定あり.
マスタサーバからKeyでデータを取得する.
setObjectValueで保存したObjectを取得する.
実装としてはPHPのunserialize関数を利用しているため、unserialize関数で変換できない値は扱えない
マスタサーバからKeyでObjectを取得する.
setObjectDataで登録したデータを取り出す.
取得と同時に値の有効期限を取得時から最初に設定した時間分延長更新
有効期限を設定していない場合は更新されない.
Sessionキャッシュなどでアクセスした時間から所定時間有効などの場合にこちらのメソッドで
値を取得していれば自動的に有効期限が更新される
接続先のokuyamaのバージョンを返す
マスタサーバからTagでKey値群を取得する.
MasterNodeからTag値を渡すことで紐付くValue値の集合を取得する.
文字列エンコーディング指定あり.
Keyは削除されTagとの紐付けだけ残っている値は返却されない.
存在しないTagを指定した場合はNULLが返される
マスタサーバからKeyでデータを取得する.
文字列エンコーディング指定あり.
マスタサーバからKeyでデータを取得する.
文字列エンコーディング指定あり.
取得と同時に値の有効期限を取得時から最初に設定した時間分延長更新
有効期限を設定していない場合は更新されない.
Sessionキャッシュなどでアクセスした時間から所定時間有効などの場合にこちらのメソッドで
値を取得していれば自動的に有効期限が更新される
マスタサーバからKeyでデータを取得する.
取得データに対してJavaScriptを実行する.
文字列エンコーディング指定あり.
マスタサーバからKeyでデータを取得する.
取得データに対してJavaScriptを実行する.
文字列エンコーディング指定あり.
マスタサーバからKeyでデータを取得する.
文字列エンコーディング指定あり.
Valueのバージョン値を合わせて返す.
setValueVersionCheckにて取得したバージョンNoを利用する memcachedのgetsに相当する.
MasterNodeへデータの加算を要求する.
Clientを初期化する.
今のところは最大保存サイズの初期化とバージョンの取得
データのLockを依頼する.
本メソッドは、startTransactionメソッドを呼び出した場合のみ有効である
データのLock解除を依頼する.
本メソッドは、startTransactionメソッドを呼び出した場合のみ有効である
全文検索用のIndexを削除する。 Prefixあり
検索Index長さ指定あり
MasterNodeへKey値とTag値を指定してTagの紐付きを削除する.
マスタサーバからKeyでデータを削除する.
取得値のエンコーディング指定が可能.
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は漢字の場合は1文字からで、それ以外は2文字から.
Prefxiあり.
MasterNodeの接続情報を設定する.
本メソッドでセットし、autoConnect()メソッドを
呼び出すと、自動的にその時稼動しているMasterNodeにバランシングして
接続される。接続出来ない場合は、別のMasterNodeに再接続される.
マスタサーバへObjectデータを送信する.
値の新規登録を保証する
PHPのオブジェクトデータの保存を行う.
実装としてPHPのserialize関数を利用しているため、serialize関数で変換できないObjectは扱えない.
Tag有り.
有効期限が秒単位で設定可能
マスタサーバへデータを送信する.
1度のみ登録可能.
Tag有り.
マスタサーバへデータを送信する.
PHPのオブジェクトデータの保存を行う.
実装としてPHPのserialize関数を利用しているため、serialize関数で変換できないObjectは扱えない.
Tag有り.
有効期限が秒単位で設定可能
保存するデータの最大長を変更する.
マスタサーバへデータを送信する.
データ保存を行う.
Tag有り.
有効期限が秒単位で設定可能
MasterNodeへデータを登録要求する.
登録と同時にValueの検索Indexを作成する
検索Indexを作成するので通常のSetに比べて時間がかかる.
全文Indexが作成されるので、値は検索可能な文字を指定すること。例えばBASE64エンコードの値などの場合は
検索時も同様にエンコードした値で検索する必要がある.
※okuyamaは検索Index作成前に、同様のKey値で値が登録されている場合は、そのKey値で登録されているValue値の
検索インデックスを削除してから登録が行われる.
Tag有り.
マスタサーバへデータを送信する.
排他的バージョンチェックを行い、更新する.
バージョン番号をgetValueVersionCheckメソッドで事前にバージョン値を取得して更新時のチェック値として利用する memcachedのcasに相当する.
Transactionを開始する.
データロック、ロックリリースを使用する場合は、
事前に呼び出す必要がある
Documentation generated on Wed, 21 Nov 2012 05:32:33 +0900 by phpDocumentor 1.4.4