Memcached Java Cient API



Memcached Java Cient API詳細解
Memcached公式サイトに対するjava_memcached-release_2.0.1バージョンは読書分析を行い、Memcached Javaクライアントlibライブラリが主に提供するコールクラスはSockIOPoolとMemCachedCientです。キークラスと方法の整理説明は以下の通りです。
SockIOPool
このクラスは管理クライアントとサーバの通信接続プールを作成するために使われています。クライアントの主な仕事はデータ通信、サーバの位置付け、hashコードの生成などです。
public static SockIOPool get Instance()
接続池の単一状態方法を取得します。この方法は一つの重負荷方法getInstance(String pool Name)があり、各pool Nameは一つのSockIOPoolの例だけを構築している。デフォルト構造のpoolNameはdefaultです。クライアントに複数のmemcachedサービスを設定する場合は、poolNameを明示的に宣言する必要があります。public void set Servers(String[]servers)
接続池の利用可能なcacheサーバリストを設定し、serverの構成形式はIP:PORT(例えば:127.1.0.1:11211)です。
public void set Weight(Integer[]weight)
接続池を設定するにはcacheサーバの重みがあり、server配列の位置にはそれぞれが対応しています。
その実現方法は、各重みに応じて接続池のbucketに同じ数のserverを置くことによって、重みの最大公約数は1であるべきであり、そうでないとbucketリソースの浪費を引き起こす。 
 for ( int i = 0; i < servers.length; i+/+ ) { if ( this.weights /!= null && this.weights.length > i ) { for ( int k = 0; k < this.weights[i].intValue(); k+/+ ) { this.buckets.add( servers[i] ); if ( log.isDebugEnabled() ) log.debug( "++++ added " + servers[i] + " to server bucket" ); } }
public void set InitCon(int initCon)
設定開始時の各cacheサーバの利用可能な接続数public void set MinCon(int minCon)
各サーバの最小利用可能な接続数を設定します。
public void set MaxCon(int maxCon)
各サーバの最大利用可能な接続数を設定します。
public void setMaxIdle(long maxIdle)
利用可能な接続池の最長待ち時間を設定します。
public void set MaintSleep(long mantSleep)
接続池メンテナンススレッドの睡眠時間を設定するメンテナンススレッドが起動しません。0に設定します。
メンテナンススレッドは主にログでsocketの運転状況を出力し、接続数や空き待ち時間などのパラメータを監視して接続の作成とクローズを制御します。public void setNagle(bolean nagle)
Naglesアルゴリズムを使用するかどうかは、私たちの通信データ量が通常より大きく(TCP制御データに対して)応答が適時であることが要求されますので、この値はfalse(デフォルトはtrue)に設定する必要があります。
ublic void set Sockett TO(int sockett to)
socketの読み込み待ち時間を設定します。public void set SocketConnect TO(int socketConnect to)
socketの接続待ち時間を設定します。public void set Alive Check(book alive Check)
心拍監視スイッチの接続を設定します。trueに設定すると、通信のたびに接続が有効かどうかの監視が行われ、通信回数が倍増し、ネットワーク負荷が増大するため、このパラメータはHAに対して要求が高い場合にTRUEとし、デフォルト状態はfalseとする。public void set Failback(bollan failback)
接続失敗回復スイッチの設定TRUEに設定します。このsocket接続は、あたごのサーバが起動したり中断したりした後も継続して使用できます。そうでないと、もう使用しなくなります。デフォルトの状態はtrueです。デフォルトのままにしてください。public void set Failover(book an failover)
設定フォールトスイッチTRUEに設定されていますが、現在のsocketが利用できない場合、プログラムは自動的に利用可能な接続を探して戻ってきます。そうでないとNULLに戻ります。デフォルトの状態はtrueです。デフォルトを維持することを推奨します。public void set Hashing Alg(int alg)
hashアルゴリズムを設定
alg=0 String.hashCode()を使用してhash codeを取得し、この方法はJDKに依存し、他のクライアントと互換性がない可能性があります。は使用しないことを推奨します。
alg=1オリジナリティ対応hashアルゴリズムを使用して、他のクライアントと互換性がある。
alg=2 CRC 32互換hashアルゴリズムを使用して、他のクライアントと互換して、オリジナリティアルゴリズムより性能が優れています。
alg=3 MD 5 hashアルゴリズムを使用する最初の3つのhashアルゴリズムを採用する場合、cacheサーバを検索して剰余方法を使用します。最後のhashアルゴリズムを用いてcacheサービスを検索する際にconsistent方法を使用する。public void initialize()
poolパラメータを設定したら、最後にこの方法を呼び出して、poolを起動します。MemCachedCient
public void set Comppress Enbale
cacheに入れるデータを圧縮するかどうか設定するデフォルト値はture です。
この値をtrueに設定するとCopress Thresoldを設定する必要がありますか?public void set Comppress Thresold(long copress Thresold)
圧縮が必要なcacheデータのしきい値を設定するデフォルト値は30 k です。
public void set Primitive AsString(bolean prmitiveAsString)
cacheデータを設定する元のタイプはString です。
デフォルトの値はfalse です。
cacheのデータタイプがstringであると確定した場合のみtrueに設定し、処理速度を速くすることができます。public void set Default Engcoding(String default Engcoding)
prmitiveAsStringがtrueであるときに使用される符号化変換フォーマットデフォルトの値はutf-8 です。
主な書き込みデータが中国語などの非ASCII符号化文字であることが確認された場合は、GBKなどより短い符号化フォーマットが望ましい。
cacheデータ書込み操作方法
セット方法
cacheサーバにデータを保存し、保存が成功すればtrue に戻ります。
cacheサーバが同じkeyを持っている場合、代わりのsetには5つのリロード方法があります。keyとvalueは必要なパラメータです。また、有効期限が切れた時間、hashコード、valueは文字列3つのオプションパラメータがありますか?
addメソッド
cacheサーバにデータを追加し、保存が成功すればtrue に戻ります。
cacheサーバが同じkeyが存在する場合、false に戻る。
addには4つの重み付け方法があり、keyとvalueは必須のパラメータであり、有効期限が過ぎた時間もあり、hashコードの2つのオプションパラメータがあります。
replace方法
cacheサーバの同じkeyにデータを置換し、保存が成功すればtrue に戻ります。
cacheサーバが同じkeyが存在しない場合、false に戻る。
replaceには4つの重み付け方法があります。keyとvalueは必要なパラメータです。有効期限が切れている時間もあります。hashコードの2つのオプションパラメータがあります。
keyの法則を分析することを提案して、もしある規則が整然としているならば、自分でhashコードを作って、記憶効率を高めます。  cacheデータ読み込み操作方法
get方法を使ってcacheサーバからデータを取得する。
書き込み時に圧縮または逐次化されると、getの戻りは自動的に解凍され、逆順序化されるである。
get方法には3つの重み付け方法があり、keyは必須パラメータであり、hashコードおよびvalueは文字列がオプションパラメータであるかどうか。
getMulti法を使ってcacheサーバからデータのセットを取得します。
get方法の配列が実装され、入力パラメータkeysはkey配列である。
戻るのは1つのmapです  カウンタをcacheで使う
store Counter方式を使用してカウンタを初期化する。
incr方法を使用してカウンタの増分動作decrを使ってカウンタの減量操作を行います。  Memcached Cient API最適化(草)
memcachedのエルゴード操作を実現します。
いくつかのアプリケーションの場合、memcachedサーバ中のcacheのデータを遍歴する必要があります。現在のmemcached client APIは巡回操作をサポートしていません。拡張が必要です。
getを実現する場合、データの有効期限を更新します。(sessionに適用すると、サーバー側のプログラムを変更する必要があります。)
memcachedがsessionサーバとして使用される場合は、sessionをサポートするaccess方法が必要であり、最近のアクセス時間によって期限切れを更新します。現在はmemcachedもこの操作をサポートしていないので、拡張が必要です。